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{
    	
    }
}

Reply via email to