次のコードを使用して、facebook.com の LIKE 機能を Android アプリに統合しています。
最初: FacebookLikeView.html という html ファイルを使用し、それを "assets/www/" フォルダーに配置しました。
<html xmlns:fb="http://ogp.me/ns/fb#">
<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 ="//connect.facebook.net/en_GB/all.js#xfbml=1&appId=My APP ID";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
</body>
<fb:like href="https://www.facebook.com/pages/OmarTalkcom/52242794400" send="true" width="120" show_faces="true" font="arial">
</fb:like>
</html>
次に、ボタンを使用して、次のような webView で html ファイルを起動しました。
Button like = (Button) findViewById(R.id.button1);
like.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
WebView myWebView = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/www/FacebookLikeView.html");
}
});
しかし、何も起こらず、ボタンをクリックするとログに次のように記録されました。
04-28 09:33:56.940: D/CONTEXT(31684): nativeDraw called here
04-28 09:33:56.940: D/CONTEXT(31684): PictureSet* draw called here
04-28 09:33:56.940: V/(31684): In ResourceHandle::create newHandle
04-28 09:33:56.990: D/dalvikvm(31684): GC_CONCURRENT freed 103K, 4% free 7195K/7431K, paused 8ms+3ms
04-28 09:33:56.990: D/CONTEXT(31684): nativeDraw called here
04-28 09:33:56.990: D/CONTEXT(31684): PictureSet* draw called here
04-28 09:33:57.080: D/CONTEXT(31684): nativeDraw called here
04-28 09:33:57.080: D/CONTEXT(31684): PictureSet* draw called here
では、ここで何が間違っているのでしょうか、または Android アプリから Facebook ページを気に入るにはどうすればよいのでしょうか?
上記のhtmlコードをhtmlファイルに入れ、chromeとfirefoxで開いてみたのですがうまくいきませんでしたが、w3schoolのhtmlサンプルの下記リンクにコピペしたらうまくいきました。