再次创建容器时,addJavascriptInterface似乎不适用于我
第一次,显示对话框:再次创建容器时,addJavascriptInterface似乎不适用于我,java,javascript,android,webview,Java,Javascript,Android,Webview,第一次,显示对话框: public class MyWebView extends Dialog { protected WebView mWebView; protected void onCreate(Bundle savedInstanceState) { mWebView.addJavascriptInterface(new JavaScriptInterface(),"js2java"); mWebView.getSettings
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);
}
}
可以成功调用函数“test”,然后关闭MyWebView实例,然后再次显示它:
new MyWebView().show();
无法调用函数“test”。不确定这是否是您的问题,但我最近在添加所需定义时遇到了JavaScripInterface问题。这可以通过明确定义java脚本中要使用的函数来解决
new MyWebView().show();
另请注意,@SuppressWarnings(“unused”)将消除恼人的unused函数警告
在您的代码示例中,我看不到您执行脚本的意义 不是那个,我最终将容器更改为活动并解决了它。似乎Discover只是隐藏对话框,而不是销毁它。
public class JavaScriptInterface
{
@JavascriptInterface
public void test(String response)
{
MyToast.showMessage(QWWebView.this.getContext(),response);
}
}