gpt4 book ai didi

javascript - 为什么 Android WebView.loadDataWithBaseUrl() 无法呈现 JavaScript?

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:32 25 4
gpt4 key购买 nike

鉴于此页面: http://music.10086.cn/newweb/qk/guoso/1C5DB9AC5C346441/t/6.html

打开 JavaScript 的 WebView 可以使用 loadUrl() 正确打开它并呈现 JavaScript。

但是,如果使用 HTTP 客户端单独加载页面内容,并使用设置的基本 URL 将其提供给 loadDataWithBaseUrl(),则 JavaScript 无法正常工作:

// store http://music.10086.cn/newweb/qk/guoso/1C5DB9AC5C346441/t/6.html into data

webView.loadUrl("http://music.10086.cn/", data, "text/html", "UTF-8", null);

我怀疑远程脚本没有加载。我怎样才能让 WebView 记录这个?

这是在 Android Ice Cream Sandwich 4.0.3 上运行的。

最佳答案

有几件事需要仔细检查:

  1. 您已包含 <uses-permission android:name="android.permission.INTERNET" />AndroidManifest.xml
  2. 您已调用 webView.getWebSettings.setJavaScriptEnabled(true);
  3. 您的 HTML 格式正确

以下代码对我有用,从 http://code.jquery.com/ 加载 jquery :

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new MyWebChromeClient());
String mimeType = "text/html";
String encoding = "utf-8";
String html = "<html> "
+ "<script src='jquery-1.10.1.min.js'></script>"
+ "<script language='javascript'>"
+ "function sayHello() { "
+ "alert(typeof($)); "
+ "} </script> "
+ "<body> "
+ " <a onClick='sayHello()'><div style='width:80px; "
+ " margin:0px auto; " + " padding:10px; "
+ "text-align:center; " + " border:2px solid #202020;' > "
+ "<br> "
+ " Click me! " + "</div></a> " + " </body>" + " </html>";
mWebView.loadDataWithBaseURL("http://code.jquery.com/", html, mimeType, encoding,null);
}

关于javascript - 为什么 Android WebView.loadDataWithBaseUrl() 无法呈现 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802878/

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