未能使通过本地的HTML在Android的WebView Facebook的评论 [英] Failed to render Facebook comments on Android WebView via local HTML

查看:123
本文介绍了未能使通过本地的HTML在Android的WebView Facebook的评论的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个创建一个简单的活动一个的WebView 装载Facebook的评论,如:

 保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        的WebView myWebView =(web视图)findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(真正的);
        // myWebView.loadUrl(http://192.168.0.2/facebook.html); //见第一形象
        myWebView.loadUrl(文件:///android_asset/facebook.html); //见第2图像
    }
 

只有调用远程HTML文件的工作,但当地一个不工作。请参阅下面的图片:

通过远程文件

通过本地文件

facebook.html

内容

  [<!DOCTYPE HTML>
< HTML>
  < HEAD>
    < META NAME =视口内容=WIDTH =装置宽度,初始规模= 1.0>
  < /头>
  <身体GT;

< D​​IV ID =FB-根>< / DIV>
<脚本>(功能(D,S,ID){
  VAR JS,FJS = d.getElementsByTagName(S)\ [0 \]。
  如果(d.getElementById(ID))回报;
  JS = d.createElement(S); js.id = ID;
  js.src =htt​​p://connect.facebook.net/en_US/all.js#xfbml=1&appId=xxx;
  fjs.parentNode.insertBefore(JS,FJS);
}(文档,脚本,Facebook的jssdk'));< / SCRIPT>

< D​​IV CLASS =FB-评论数据HREF =htt​​p://example.com数据宽度=470数据NUM-帖=10>< / DIV>

  < /身体GT;
< / HTML>
 

解决方案

您需要指定一个基本URL。

  myWebView.loadDataWithBaseURL(http://www.example.com,YOUR_HTML,text / html的,NULL,NULL)
 

要完全取代上面的一行:

 的BufferedReader读卡器=新的BufferedReader(新的FileReader(文件:///android_asset/facebook.html));
串线;
字符串的HTML =;
而((行= reader.readLine())!= NULL){
    HTML + =行;
}
reader.close();
myWebView.loadDataWithBaseURL(http://www.example.com,HTML,text / html的,NULL,NULL)
 

I have a simple activity that create a WebView to load Facebook Comments, e.g.

  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
    }

Only the call to remote html file work, but the local one does not work. See the following images:

via Remote file

via Local file

And the content of 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>

解决方案

You need to specify a base URL.

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

To fully replace the line above:

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)

这篇关于未能使通过本地的HTML在Android的WebView Facebook的评论的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆