2016-04-06 12 views
0

私はAndroidアプリのWebviewにFacebookの投稿を埋め込もうとしています。明確な形式でAndroid用WebviewにFacebookの投稿を埋め込む

String webcode = "<html>\n" + 
      "   <body>\n" + 
      "      <div class=\"fb-post\" \n" + 
      "      data-href=\"https://www.facebook.com/20531316728/posts/10154009990506729/\"\n" + 
      "      data-width=\"500\"></div>\n" + 
      "      <!--        <div id=\"fb-root\"></div> -->\n" + 
      "  </body>\n" + 
      "<script>(function(d, s, id) {\n" + 
      "  var js, fjs = d.getElementsByTagName(s)[0];\n" + 
      "  if (d.getElementById(id)) return;\n" + 
      "  js = d.createElement(s); js.id = id;\n" + 
      "  js.src = \"https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5\";\n" + 
      "  fjs.parentNode.insertBefore(js, fjs);\n" + 
      "}(document, 'script', 'facebook-jssdk'));</script>\n" + 
      "</html>"; 
    web_view.getSettings().setJavaScriptEnabled(true); 
    web_view.loadData(webcode, "text/html", null); 

Javaスクリプトコード:

<html> 
   <body> 
      <div class="fb-post" 
      data-href="https://www.facebook.com/20531316728/posts/10154009990506729/" 
      data-width="500"></div> 
      <!--        <div id="fb-root"></div> --> 
  </body> 
<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 = "https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5"; 
  fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 
</html> 
彼らは私が次のようにWebViewのにhtmlコードをロードしようとした

https://developers.facebook.com/docs/plugins/embedded-posts)のウェブサイトではJavaScriptを含める方法を示しています

しかし、webviewには2行の奇妙な文字が表示されます。このコードがサーバー上で実行されている場合は、Facebookの投稿が正しく表示されています。これがAndroidアプリのWebビューで機能するためには、何をする必要がありますか?ありがとう!

答えて

2

web_view.loadData(webcode, "text/html", null);の代わりにweb_view.loadDataWithBaseURL("http://some.url", webcode, "text/html", "utf-8", null);を使用してください。

関連する問題