簡體   English   中英

onActivityResult請求代碼Facebook SDK

[英]onActivityResult requestcode Facebook SDK

我正在構建一個使用Facebook SDKAndroid應用,以便人們可以共享URL。 我將onActivityResult用於我的活動中的多件事,所以我使用了requestCode上的開關,以便我知道如何處理每個活動結果。 例如,當我取消分享Facebook帖子時,如何獲得正確的requestCode? 這是我目前的代碼:

import com.facebook.CallbackManager;

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
        case 1: 
        ... doing some not-facebook-related stuff here
        case 2:
        ... doing some other not-facebook-related stuff here


//      case ??? : 
//      callbackManager.onActivityResult(requestCode, resultCode, data);

那么正確的requestCode是什么,如何獲得呢?

這是我在類似情況下使用的:

    if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
        // call callbackManager
    }

您還可以設置FacebookSdk使用的請求代碼的偏移量:

FacebookSdk.sdkInitialize(getApplicationContext(), 10000);

順便說一句,我已經在源代碼中找到了它,所以我不確定此選項的“安全性”,因為CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()不是公開的記錄方法。

嘗試改用sharedialog

new ShareDialog(this).registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {

            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
        });

取消共享后,您將進入onCancel回調。 也取消評論

callbackManager.onActivityResult(requestCode, resultCode, data);

來自onActivityResult方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM