javascript
android webview javascript不执行,WebView中的JavaScript为什么不执行?
瀏覽器未開啟javascript
使用的js代碼有問題,webview不兼容該代碼。
1) 第一個坎:WebSettings
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
2) 第二個坎: 有物
在運行腳本前,要有document對象,至少得load一個空白頁
webView.loadData(“”,"text/html","UTF-8");
3)第三個坎: 異步
如果這么寫是沒戲的,因為第一個還沒執(zhí)行完呢
webView.loadData(“”,"text/html","UTF-8");
webView.loadUrl("javascript:alert('hello')");
解決這個問題。可以1)從界面按鈕調(diào)用 2)延時調(diào)用。 3)在onPageFinished中調(diào)用
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已經(jīng)可以執(zhí)行,可是為什么看不到console.log和alert呢?因為這2個要額外實現(xiàn)
mWebView.setWebChromeClient(new MyWebChromeClient()); //optional, for show console and alert
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;
}
}
總結(jié)
以上是生活随笔為你收集整理的android webview javascript不执行,WebView中的JavaScript为什么不执行?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux操作系统入门(linux系统操
- 下一篇: hiti打印机android驱动,HiT