无法通过本地HTML在Android WebView上呈现Facebook注释

我有一个简单的活动,创build一个WebView加载Facebook评论,例如

  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView myWebView = (WebView) findViewById(R.id.webView); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); // myWebView.loadUrl("http://192.168.0.2/facebook.html"); // See 1st image myWebView.loadUrl("file:///android_asset/facebook.html"); // See 2nd image } 

只有调用远程HTML文件的工作,但本地的一个不工作。 看到下面的图片:

通过远程文件

通过远程文件

通过本地文件

通过本地文件

facebook.html的内容

 ![<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)\[0\]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "http://connect.facebook.net/en_US/all.js#xfbml=1&appId=xxx"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="fb-comments" data-href="http://example.com" data-width="470" data-num-posts="10"></div> </body> </html> 

Solutions Collecting From Web of "无法通过本地HTML在Android WebView上呈现Facebook注释"

您需要指定一个基本的URL。

 myWebView.loadDataWithBaseURL("http://www.example.com", "YOUR_HTML", "text/html", null, null) 

要完全replace上面的行:

 BufferedReader reader = new BufferedReader(new FileReader("file:///android_asset/facebook.html")); String line; String html = ""; while((line = reader.readLine()) != null) { html += line; } reader.close(); myWebView.loadDataWithBaseURL("http://www.example.com", html, "text/html", null, null)