gpt4 book ai didi

javascript - 在 Android webview 中运行 JavaScript

转载 作者:行者123 更新时间:2023-11-29 16:38:36 25 4
gpt4 key购买 nike

几个小时以来,我一直在尝试在 android webview 中运行一些 Javascript,其中有 Jsoup 解析的 html。尽管我尽了一切努力让它发挥作用,但我仍然做不到。

我在整个 Google 上搜索并尝试了我找到的所有答案,但是没有一个能达到我尝试使用方法的目的,这就是我最终得到的结果:

Document doc = Jsoup.connect("http://example.com/").get();
Elements web_body = doc.select("body").first().children();
Elements web_head = doc.select("head").first().children();

String javascript = "document.querySelector('h1').innerText='f';"; //Replaces 'Example Domain' with 'f': just an example js code.

WebView webview = findViewById(R.id.webview_id);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);

String html_content = "<html>" + "<head>" + web_head.toString() + "</head>" + "<body>" + web_body.toString() + "</body>" + "</html>";
webview.loadDataWithBaseURL("", html_content, "text/html", "UTF-8", "");

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
webview.evaluateJavascript(javascript, null);
} else {
webview.loadUrl("javascript:(function(){" + javascript + "})()");
}
  • 上面的代码显示了示例页面,但 javascript 根本不起作用:应用程序没有显示任何错误消息,也没有崩溃。
  • 我使用的是搭载 Android O (8.0) 的手机。

希望以上信息对您有所帮助。我仍然是 Java 的初学者,非常感谢任何帮助!

最佳答案

好吧,我替换了:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
webview.evaluateJavascript(javascript, null);
} else {
webview.loadUrl("javascript:(function(){" + javascript + "})()");
}

webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView webview, String url) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
webview.evaluateJavascript(javascript, null);
} else {
webview.loadUrl("javascript:(function(){" + javascript + "})()");
}
}
});

而且效果很好!

关于javascript - 在 Android webview 中运行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com