日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

android webview javascript不执行,WebView中的JavaScript为什么不执行?

發布時間:2023/12/2 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)第三個坎: 異步

如果這么寫是沒戲的,因為第一個還沒執行完呢

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()); //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;

}

}

總結

以上是生活随笔為你收集整理的android webview javascript不执行,WebView中的JavaScript为什么不执行?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。