微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法通过本地HTML在Android WebView上呈现Facebook评论

我有一个简单的活动,创建一个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>

解决方法

您需要指定基本URL.
myWebView.loadDataWithBaseURL("http://www.example.com","YOUR_HTML","text/html",null,null)

要完全替换上面的行:

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,null)

原文地址:https://www.jb51.cc/html/231719.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐