下午在研究webView 与js之间的调用,于是到w3school上找了一个html的页面。
html页面:
<html> <head> <script type="text/javascript"> function show_confirm() { var r=confirm("Press a button!"); if (r==true) { alert("You pressed OK!"); } else { alert("You pressed Cancel!"); } } </script> </head> <body> <input type="button" onclick="show_confirm()" value="弹出确认框" /> </body> </html>android页面:
mWvWeb.getSettings().setJavaScriptEnabled(true);//设置可以响应JS mWvWeb.setWebViewClient(new WebViewClient());//限制在WebView中打开网页,而不用默认浏览器
mWvWeb.loadUrl("file:android_asset/test.html");
但是没想到这个html页面里的js竟然没有效果。这个js用电脑打开是没有问题的,可以正常调用。但是用android机器打开就无法调用。在网上找了很久才找到解决方案:
加上下面这段代码就可以执行JS代码了。
mWvWeb.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } });
总结了一下,如果是alert没有被调用的话,就需要设置WebChromeClient
转自: http://blog.csdn.net/shirakawakanaki/article/details/52757770