4

我正在使用Facebook Android sdk3.0。 我想在用戶通過Facebook成功登錄後執行某些操作。 我應該在onActivityResult還是函數Session.StatusCallback內部實現它?onActivityResult與onComplete Session.StatusCallback之間的區別Facebook Android sdk3.0

其實兩者有什麼區別嗎?我可以假設Session.StatusCallback onComplete總是在onActivityResult之後調用嗎?

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
    // Do Something Here? 
} 


private class SessionStatusCallback implements Session.StatusCallback { 

    @Override 
    public void call(Session session, SessionState state, Exception exception) { 

     if (session.isOpened()) { 
      // Or Do Something Here? 
     } 
    } 
} 

回答

5

簡短的回答是,你應該兩個都做。

onActivityResult是需要的,因爲您需要將信息傳遞到Facebook SDK以便SDK驗證用戶是否已接受條款和許可。一旦SDK驗證了所有內容,它就會以新狀態或任何發生的錯誤調用SessionStatusCallback.call。

當你打開一個新的會話時,它將首先轉換到OPENING狀態(它將調用你的回調),然後它將完成SSO,當SSO完成時,你的onActivityResult將被調用(在這個時候你應該調用session.onActivityResult或uiLifecycleHelper.onActivityResult),然後會話將轉換到OPENED狀態,這會再次調用您的回調。

+0

驚人的幫了我很多 –

相關問題