Android中的Facebook评论框
问题描述:
在我的应用程序中,我想通过webview在我的网站上显示评论。 这是我做了什么:Android中的Facebook评论框
在资产文件夹中我有一个comment.html文件名为
<html>
<head>
</head>
<body>
<div id="fb-root"></div>
<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=467390796664437";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-comments" data-href="http://www.haivl.com/photo/1259735" data-width="470"></div>
</body>
</html>
-
在CommentViewActivity.java
公共类CommentViewActivity延伸活动{ 公众静态上下文上下文 私人WebView webView;
@SuppressLint("SetJavaScriptEnabled") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_zini_login); context = this; CookieSyncManager.createInstance(this); CookieManager cm = CookieManager.getInstance(); cm.removeAllCookie(); webView = (WebView) findViewById(R.id.web_login); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/comment.html"); webView.setWebViewClient(new WebViewClientActivity()); } public class WebViewClientActivity extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { System.out.println("onPageStarted: " + url); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView webView, String url) { System.out.println("onPageFinished: " + url); } }
}
活性显示如下:
正如你所看到的,Facebook的评论框遮住,我不能看到整个注释。 任何人有想法?
感谢您的关注!
答
基于此文章Failed to render Facebook comments on Android WebView via local HTML?
您需要指定一个基本URL。
myWebView.loadDataWithBaseURL("http://www.haivl.com",
"<html>
<head>
</head>
<body>
<div id="fb-root"></div>
<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=467390796664437";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-comments" data-href="http://www.haivl.com/photo/1259735" data-width="470"></div>
</body>
</html>", "text/html", null, null);