【问题标题】:Facebook Like button in Android ApplicationAndroid 应用程序中的 Facebook Like 按钮
【发布时间】:2011-10-17 13:44:47
【问题描述】:

我想在我的 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;
    }
}

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

【问题讨论】:

  • 嘿,我想做同样的事情。请告诉我解决了吗?如果是,那你是怎么做到的?
  • 您可以添加webview,设置webview的高度和宽度。这样onlu like按钮就会显示给用户。

标签: android facebook facebook-like


【解决方案1】:

like 选项可以在本机平台语言(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

【讨论】:

  • 这是一个很好的答案。我连续三天一直在寻找这样的答案。非常感谢!
  • 我没有内置(常见)类似操作的选项。有什么建议吗?
【解决方案2】:

Facebook SDK 没有为原生移动应用程序提供like 按钮功能(截至 2011 年 10 月 17 日)。它在移动 Web 应用程序中可用。 欲了解更多信息,您可以查看以下链接:
Mobile - Facebook Developers
Like Button - Facebook Developers

【讨论】:

  • 我想在 android.it 的 Webview 中显示。在 ios 中他们也可能显示类似按钮的 webview,所以我想要那个
【解决方案3】:

Facebook 终于推出了Like Button for Android

步骤:

1 - 将Facebook Library 添加到项目

2 - Facebook 上的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);

}

输出

【讨论】:

  • 有没有办法喜欢应用程序本身?就像 Google Play 中的 Google plus 一键一样。
【解决方案4】:

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

    }
}

} 此代码将从类似功能返回您想要的所有内容。

【讨论】:

    【解决方案5】:

    试试这个我做了一些修改

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

    【讨论】:

      【解决方案6】:

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

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

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

      希望它能解决你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多