似乎addJavascriptInterface在再次创建容器时对我不起作用

时间:2014-07-08 06:59:14

标签: java javascript android webview

public class MyWebView extends Dialog 
{
    protected WebView mWebView;

    protected void onCreate(Bundle savedInstanceState) {

        mWebView.addJavascriptInterface(new JavaScriptInterface(),"js2java");

        mWebView.getSettings().setJavaScriptEnabled(true);
    }

}

    public class JavaScriptInterface
    {
        public void test(String response)
        {
            MyToast.showMessage(QWWebView.this.getContext(),response);
        }
    }

第一次显示对话框:

new MyWebView().show();

可以成功调用函数“test”,然后关闭MyWebView实例,然后再次显示:

new MyWebView().show();

无法调用“test”函数。

1 个答案:

答案 0 :(得分:0)

不确定这是否是您的问题,但是在添加所需定义时,我最近遇到了JavaScripInterface问题。这可以通过专门定义在java脚本中使用哪些函数来解决。

public class JavaScriptInterface
{
    @JavascriptInterface
    public void test(String response)
    {
        MyToast.showMessage(QWWebView.this.getContext(),response);
    }
}

另请注意@SuppressWarnings(“unused”)将摆脱恼人的未使用功能警告。

在您的代码示例中,我看不到您执行脚本的要点?!?