是否可以使用loadData()在Android WebView中单独加载Javascript和HTML?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以使用loadData()在Android WebView中单独加载Javascript和HTML?相关的知识,希望对你有一定的参考价值。

我想在WebView中单独加载javascripthtml。基本上,我希望为将要加载的任何HTML页面运行一个通用的Javascript。

答案

这是你想要完成的一个例子:

/** returns a self-invoking JS function */
protected String getJavaScript(int sequence, String message) {
    return "(function(){" +
       ...
    "})();";
}

/** Script Execution Wrapper */
protected void evalScript(WebView webview, String script) {
    webview.loadUrl("javascript:" + script);
}

来源:我的GitHub

另一答案

我想出了一种方法来做到这一点。

您可以使用单独的Javascript,然后使用WebViewClient的onPageFinished()中的WebView.evaluateJavascript()来评估该Javascript。

webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            view.evaluateJavascript("javascript: " + readInputStream("javascript.js"), null);
        }
    });

以上是关于是否可以使用loadData()在Android WebView中单独加载Javascript和HTML?的主要内容,如果未能解决你的问题,请参考以下文章

Android WebView - 第一个 LoadData() 工作正常,后续调用不更新显示

Android WebView loadData读取两次才能显示的问题

安卓。 WebView 和 loadData

WebView.loadData 在 Android 9.0 (API-29) 上不起作用

android中的webview loaddata不会从img src加载图片

Android 应用程序中的编码问题 (WebView.LoadData())