Android应用程序中的Facebook Likebutton

我想在我的android应用程序中显示像button。 以下是我在android应用程序中用来显示Likebutton的代码。

String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm" webview = (WebView) findViewById(R.id.webView1); webview.loadUrl(url); webview.setWebViewClient(new LikeWebviewClient()); public class LikeWebviewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } 

但是当我运行这个应用程序,它显示一个白色的区域。 如何解决这个问题?

Solutions Collecting From Web of "Android应用程序中的Facebook Likebutton"

Facebook的SDK没有提供like原生移动应用程序的buttonfunction(截至2011年10月17日)。 它在移动Web应用程序中可用。 欲了解更多信息,你可以看看这些链接:
移动 – Facebook开发者
像button – Facebook开发人员

类似的选项可以在Native平台语言(Android,iOS)以及浏览器(curl,PHP,JavaScript)上轻松实现,如下所示。 转到developer.facebook应用程序部分,并在Developer Appconfiguration的Open Graph部分中,添加内置的Like操作,在添加新的Open Graph操作时,该操作应显示在下拉列表中。 请参阅此处获取最新更新。

完成后,select“获取代码”选项来检索示例代码,如下所示Android平台。 你可以select你select的平台。 请注意,app_specific_unique_identifier是唯一的应用程序,我已经删除它出于安全原因,你必须使用你的应用程序。

我已经能够成功地testingLikestream。 希望这可以帮助。

 Bundle params = new Bundle(); params.putString("object", "http://samples.ogp.me/<app_specific_unique_identifier>"); Request request = new Request( Session.getActiveSession(), "me/og.likes", params, HttpMethod.POST ); Response response = request.executeAndWait(); // handle the response 

最后Facebook和推出像 Android的button

脚步:

1 – 将Facebook库添加到项目

2 – 在Facebook上创build应用程序 3 – 更新清单

 **In the Application tab add meta-data** <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_id" /> 

4 – 在布局中添加LikeView

 //activitymain.xml <com.facebook.widget.LikeView android:id="@+id/like_view" android:layout_width="wrap_content" android:layout_height="wrap_content" > </com.facebook.widget.LikeView> 

5 – ActivityMain.java

 //set facebook page or link to this like button LikeView likeView; UiLifecycleHelper uiHelper; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activitymain); uiHelper = new UiLifecycleHelper(this, null); likeView = (LikeView) findViewById(R.id.like_view); likeView.setObjectId("https://www.facebook.com/<page_username>");//it can be any link likeView.setLikeViewStyle(LikeView.Style.STANDARD); likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE); likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.LEFT); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); uiHelper.onActivityResult(requestCode, resultCode, data, null); } 

产量 在这里输入图像说明

您可以使用Facebook的开发人员帐户https://developers.facebook.com特殊许可使用Facebook的button在Android应用程序&#x3002; 在这里添加你的应用程序并提交应用程序的特殊权 去应用程序审查和提交项目审批。 点击开始提交,然后selectLIKE原生button,并提交他们想要的所有细节,为什么你想获得像权限,你的应用程序将如何使用这个权限的一切。 如果Facebook会批准你的请求,那么你可以使用应用程序内的button像button。 enter code here

  <com.facebook.share.widget.LikeView android:id="@+id/facebooklike" android:layout_width="wrap_content" android:layout_height="wrap_content"> </com.facebook.share.widget.LikeView> 

在此之后,你需要做一些Java代码。

 likeView = (LikeView) findViewById(R.id.facebooklike); likeView.setLikeViewStyle(LikeView.Style.STANDARD); likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE); likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.CENTER); likeView.setObjectIdAndType("url of like page", LikeView.ObjectType.PAGE); 

当你点击button时,自动调用类似function。

现在你需要得到像那个页面那样的用户那样的页面的响应。

 enter code here 

公共类FbLikes扩展AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fb_likes); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); try { if (resultCode == RESULT_OK) { // verify we're returning from like action // get action results bundle = data.getExtras().getBundle("com.facebook.platform.protocol.RESULT_ARGS"); if (bundle != null) { like = bundle.getBoolean("object_is_liked");// liked/unliked bundle.getInt("didComplete"); bundle.getInt("like_count"); // object like count bundle.getString("like_count_string"); bundle.getString("social_sentence"); bundle.getString("completionGesture"); // liked/cancel/unliked Log.e(TAG, bundle.getString("social_sentence") + ""); Log.e(TAG, "likeornot" + bundle.getBoolean("object_is_liked") + ""); Log.e(TAG, "lcomplete" + bundle.getString("completionGesture") + ""); Log.e(TAG, "count" + bundle.getInt("like_count") + ""); Log.e(TAG, "countstr" + bundle.getString("like_count_string") + ""); Log.e(TAG, "did" + bundle.getInt("didComplete") + ""); } } } catch (Exception e) { } } 

}这段代码将从类似的function中返回你想要的所有东西。

试试这个我做了一些修改

 String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm"; // webview = (WebView) findViewById(R.id.webview); webView.loadUrl(url); webView.setWebViewClient(new WebViewClient()); class LikeWebviewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } 

Facebook最近在facebook sdk 3.21.1中提供了likebutton的function。 你可以通过这些链接去下载sdk和tutorial来执行likebutton。

下载SDK: http : //developers.facebook.com/docs/android

教程http://developers.facebook.com/docs/android/like-button

我希望这可以解决你的问题。