WebView 无法执行js代码

来源:互联网 发布:appcan怎么调用数据库 编辑:程序博客网 时间:2024/05/22 10:30

下午在研究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);//设置可以响应JSmWvWeb.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。

0 0
原创粉丝点击