为什么Android WebView.loadDataWithBaseUrl()无法呈现JavaScript?
鉴于本页: 打开JavaScript的WebView可以使用loadUrl()正确打开它并呈现JavaScript 但是,如果使用HTTP客户端单独加载页面内容,并将基本URL设置为loadDataWithBaseUrl(),则JavaScript无法正常工作:为什么Android WebView.loadDataWithBaseUrl()无法呈现JavaScript?,javascript,android,webkit,Javascript,Android,Webkit,鉴于本页: 打开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.100
// 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日志符合此要求
这是安卓冰淇淋三明治4.0.3版。有几件事需要仔细检查:
包含在AndroidManifest.xml
webView.getWebSettings.setJavaScriptEnabled(true)代码>
@覆盖
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.main);
mWebView=(WebView)findViewById(R.id.WebView);
WebSettings WebSettings=mWebView.getSettings();
setJavaScriptEnabled(true);
setWebChromeClient(新的MyWebChromeClient());
字符串mimeType=“text/html”;
字符串编码=“utf-8”;
字符串html=“”
+ ""
+ ""
+“函数sayHello(){”
+“警报(类型($);”
+ "} "
+ " "
+ " "
+“
”
+“点击我!”+“+”+”;
mWebView.loadDataWithBaseURL(“http://code.jquery.com/,html,mimeType,编码,空);
}
我在本地JS和CSS中也看到了同样的情况。也许他们在ICS中引入了一些安全措施?谢谢你的确认。是的,也许吧。但是,通过Android WebKit源代码进行调试会占用太多时间。
@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);
}