Android WebView无法添加多个javascript接口

时间:2012-05-09 07:53:56

标签: android webview

我发现如果我使用之前添加的界面,webview就无法再添加javascriptInterface了。 demo1的

    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');");

DEMO2

    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');");

在demo2中,当我使用test11这样的界面时,我会被告知无法找到obj test11

我不知道为什么。期待你的建议

1 个答案:

答案 0 :(得分:4)

交换loadUrl和addJavascriptInterface,并且可能会成功。

this.webView.addJavascriptInterface(test1, "test1");
this.webView.addJavascriptInterface(test11, "test11");
this.webView.addJavascriptInterface(test2, "test2");
this.webView.addJavascriptInterface(test22, "test22");
this.webView.loadUrl("http://www.google.com");
相关问题