【问题标题】:Android Facebook SDK v4 LikeView issueAndroid Facebook SDK v4 LikeView 问题
【发布时间】:2015-04-17 17:49:57
【问题描述】:

我正在尝试在我的 Android 应用中实现 Facebook“点赞按钮”。在我使用 Facebook SDK v3 之前,您将在其中设置 LikeView,然后在 onActivityResult(); 内部调用 likeView.handleOnActivityResult(context, requestCode, resultCode, data);这将更改按钮,以便在页面被“喜欢”后它会显示“喜欢”以及也喜欢该页面的人数。

现在,我使用的是 Facebook SDK v4,因为 v3 现已弃用。在这个版本中,我没有看到任何文档,或者无论如何都没有为“喜欢”按钮提供这种相同类型的功能。它不再具有 v3 具有的 likeView.handlePnActivityResult 方法。现在当用户点击“喜欢”按钮并喜欢页面时,它不会改变按钮的状态。

有谁知道如何解决这个问题,使其具有与 Facebook SDK v3 中的 LikeView 相同的功能?

这是我正在做的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Initialize FaceBook SDK
    FacebookSdk.sdkInitialize(this);

    setContentView(R.layout.activity_about);

    // Set up ActionBar
    actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);

    terms = (LinearLayout) findViewById(R.id.terms_holder);
    privacyPolicy = (LinearLayout) findViewById(R.id.privacy_policy_holder);
    share = (LinearLayout) findViewById(R.id.social_media_holder);
    environmentButton = (Button) findViewById(R.id.environment_change);
    likeView = (LikeView) findViewById(R.id.like_view);

    likeView.setObjectIdAndType("##############", LikeView.ObjectType.PAGE);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // In the old Facebook SDK this is where it would change the like button to "liked 2,038" but this code is deprecated now apparently
    // likeView.handleOnActivityResult(this, requestCode, resultCode, data);
}

这是我的 XML:

<LinearLayout
android:id="@+id/social_media_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:gravity="center_vertical"
android:clickable="true"
android:onClick="onClick" >


<com.facebook.share.widget.LikeView
    android:id="@+id/like_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="10dp" />           


<TextView
    android:id="@+id/post_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:text="@string/post_about_us"
    android:textSize="20dp"
    android:textColor="@color/dark_grey" />

【问题讨论】:

  • 您需要实现一个 CallbackManager,然后在 onActivityResult 中通过以下方式将结果传递给它:callbackManager.onActivityResult(requestCode, resultCode, data);

标签: android facebook sdk


【解决方案1】:

Guardanis 的回答是正确的(问题的评论部分)。 但这是它的代码(我用过)。

在 onCreate(...) 中

callbackManager = CallbackManager.Factory.create();

在 onActivityResult(...)

 callbackManager.onActivityResult(requestCode, resultCode, data);

【讨论】:

  • 这对我不起作用。我正在使用 Parse API 进行 Facebook 登录,并且还添加了 ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);在 onActivityResult() 方法中。
  • 我已经解决了这个问题,我错过了将测试人员/开发人员添加到 Facebook 应用程序的机会。
  • 成功了!谢谢! Facebook 文档中没有提到这是什么?!
【解决方案2】:

原生赞按钮:从 Facebook SDK 4.28 及更高版本开始,将不再支持为移动应用设计的原生赞按钮。之前版本的 SDK 仍然可以使用 Native Like Button,但是从 2/6 开始,将不再支持 Native Like Button。 2/6 后,Native Like 的对话框将不再出现,点击任何 Native Like 按钮将导致无任何操作。

【讨论】:

  • 好的,但你没有提供任何解决方案!
  • 因为现在没有原生解决方案。
猜你喜欢
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多