Android webview调用js代码无效 webView.loadUrl("javascript:alert('hello')")

编程知识 行业动态 更新时间:2024-06-13 00:17:50


利用WebView调用js的alert方法一直无效的解决办法
webView.loadUrl("javascript:alert('hello')")

利用 webview调用js需要注意一下四点

1) WebSettings设置支持javascript

mWebView.getSettings().<span style="font-family: STHeiti;">setJavaScriptEnabled(true);</span>

2) 在运行脚本前,要有document对象,至少得load一个空白页

webView.loadData(“”,"text/html","UTF-8");

3)如果还是不行的话,就应该是因为第一个还没执行完呢

webView.loadData(“”,"text/html","UTF-8");

webView.loadUrl("javascript:alert('hello')");

解决这个问题有三个办法  1)从界面按钮调用 2)延时调用 3)在onPageFinished中调用

mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient {

@Override

public void onPageFinished(WebView webView, String url) {

webView.loadUrl("javascript:"+script);

}

}

4)console/alert

以上三点完成后,js就已经可以执行了,可是为什么console.log和alert没有效果呢?

因为这2个要额外实现

mWebView.setWebChromeClient(new MyWebChromeClient());

private class MyWebChromeClient extends WebChromeClient {

@Override

public boolean onConsoleMessage(ConsoleMessage cm) {

Log.d("test", cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId() );

return true;

}

@Override

public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();

return true;

}

}


更多推荐

Android webview调用js代码无效 webView.loadUrl("javascript:alert('hello'

本文发布于:2023-03-25 20:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/30a0e5fa543e171b6667bc317b70a762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:代码   js   Android   webview   webView

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!