Facebook在Android应用程序中的按钮

时间:2011-10-17 13:44:47

标签: android facebook facebook-like

我想在我的Android应用程序中显示类似按钮。下面是我用来在Android应用程序中显示Like按钮的代码。

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

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

6 个答案:

答案 0 :(得分:7)

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

完成后,选择“获取代码”选项以检索示例代码,如下面针对Android平台所述。您可以选择您选择的平台。请注意,app_specific_unique_identifier对于应用程序是唯一的,我出于安全原因删除了它,您必须使用该应用程序。

我已经能够成功测试Like流程。希望这会有所帮助。

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

答案 1 :(得分:4)

Facebook SDK尚未为原生移动应用提供like按钮功能(截至2011年10月17日)。它可以在移动Web应用程序中使用。 有关详细信息,请查看以下链接:
Mobile - Facebook Developers
Like Button - Facebook Developers

答案 2 :(得分:3)

最后Facebook推出了Like Android按钮

步骤:

1 - 将Facebook Library添加到项目

Facebook上的

2 - Create App 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);

}

输出 enter image description here

答案 3 :(得分:2)

您可以使用Facebook开发者帐户https://developers.facebook.com的特殊权限在Android应用中使用facebook like按钮。 在此处添加您的应用并提交应用特殊权限。 转到应用审核并提交项目以供审批。 点击开始提交,然后选择LIKE原生按钮,并提交他们想要的所有详细信息,例如您希望得到类似权限,您的应用将如何使用此权限。 如果Facebook会批准您的请求,那么您可以在应用内使用facebook like 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);

类似功能会在您点击按钮时自动调用。

现在您需要从类似页面获得响应,用户喜欢与该页面不同的页面。

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

    }
}

} 此代码将返回您想要的所有功能。

答案 4 :(得分:0)

尝试这个我做了一些修改

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

答案 5 :(得分:0)

Facebook最近在facebook sdk 3.21.1中提供了likebutton的功能。您可以通过这些链接下载sdk和教程以实现likebutton。

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

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

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