When I wanna to add multiple javascriptInterface, I meet the
warming/error that I could not find the object.
The source codes are enclosed. The "GoogleWebViewActivity_error.java" could
not work when you invoke the interface such as test11.
I also ask the same question on the stack overflow:
http://stackoverflow.com/questions/10511990/android-webview-fail-to-add-multiple-javascriptinterface
It blocks my project. Looking forwards your suggestion
Thank you all
Xin Huang
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
package maigoxin.googleWebView;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class GoogleWebViewActivity extends Activity {
/** Called when the activity is first created. */
private WebView webView;
Test1 test1 = new Test1();
Test1 test11 = new Test1();
Test2 test2 = new Test2();
Test2 test22 = new Test2();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.webView = (WebView)findViewById(R.id.webView1);
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new MyWebChromeClient());
this.webView.loadUrl("http://www.google.com");
this.webView.addJavascriptInterface(test1, "test1");
this.webView.addJavascriptInterface(test11, "test11");
this.webView.addJavascriptInterface(test2, "test2");
this.webView.addJavascriptInterface(test22, "test22");
this.webView.loadUrl("javascript:window.test1.describle('Hello1');");
this.webView.loadUrl("javascript:window.test11.describle('Hello11');");
this.webView.loadUrl("javascript:window.test2.describle('Hello2');");
this.webView.loadUrl("javascript:window.test22.describle('Hello22');");
}
class Test1{
public void describle(String using){
Log.d("maigoxin","I'm Test1:"+using);
}
}
class Test2{
public void describle(String using){
Log.d("maigoxin","I'm Test2:"+using);
}
}
class MyWebChromeClient extends WebChromeClient{
}
}
package maigoxin.googleWebView;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class GoogleWebViewActivity extends Activity {
/** Called when the activity is first created. */
private WebView webView;
Test1 test1 = new Test1();
Test1 test11 = new Test1();
Test2 test2 = new Test2();
Test2 test22 = new Test2();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.webView = (WebView)findViewById(R.id.webView1);
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new MyWebChromeClient());
this.webView.loadUrl("http://www.google.com");
this.webView.addJavascriptInterface(test1, "test1");
this.webView.loadUrl("javascript:window.test1.describle('Hello1');");
this.webView.addJavascriptInterface(test11, "test11");
this.webView.addJavascriptInterface(test2, "test2");
this.webView.addJavascriptInterface(test22, "test22");
this.webView.loadUrl("javascript:window.test1.describle('Hello1');");
this.webView.loadUrl("javascript:window.test11.describle('Hello11');");
this.webView.loadUrl("javascript:window.test2.describle('Hello2');");
this.webView.loadUrl("javascript:window.test22.describle('Hello22');");
}
class Test1{
public void describle(String using){
Log.d("maigoxin","I'm Test1:"+using);
}
}
class Test2{
public void describle(String using){
Log.d("maigoxin","I'm Test2:"+using);
}
}
class MyWebChromeClient extends WebChromeClient{
}
}