4

このページを考えると: 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 です。

4

1 に答える 1

2

再確認すべき点がいくつかあります。

  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);
}
于 2013-10-21T11:04:08.640 に答える