2016-04-06 4 views
0

Ich versuche Facebook-Posts in das Webview meiner Android-App einzubetten. Sie zeigen, wie die JavaScript in einer Webseite enthalten (https://developers.facebook.com/docs/plugins/embedded-posts)Betten Sie Facebook-Posts in Android Webview ein

Ich habe versucht, den HTML-Code in eine webview wie folgt zu laden:

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 Script-Code im Klar Format:

<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> 

Allerdings zeigt das Webview 2 Zeilen von seltsamen Zeichen. Wenn dieser Code auf einem Server ausgeführt wird, wird der Facebook-Post korrekt angezeigt. Was muss getan werden, damit dies in der Webansicht einer Android-App funktioniert? Vielen Dank!

Antwort

2

Verwenden Sie web_view.loadDataWithBaseURL("http://some.url", webcode, "text/html", "utf-8", null); anstelle von web_view.loadData(webcode, "text/html", null);

Verwandte Themen