是否可以使用loadData()在Android WebView中单独加载Javascript和HTML?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以使用loadData()在Android WebView中单独加载Javascript和HTML?相关的知识,希望对你有一定的参考价值。
我想在WebView中单独加载javascript和html。基本上,我希望为将要加载的任何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 在 Android 9.0 (API-29) 上不起作用