2012-09-26 56 views
4

我下載了新的Facebook iOS SDK 3.1,它承諾有一個native login prompt。我在我的iOS 6設備上運行了他們的示例登錄應用程序。當我試圖與Facebook連接時,我沒有得到本地登錄。相反,Facebook應用程序啓動 - 與舊版SDK相同。他們的Facebook登錄按鈕基本上是這樣的:如何使用SDK 3.1在iOS上獲取原生Facebook登錄?

[appDelegate.session 
    openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
     [self updateView]; 
    } 
]; 

我想也許示例代碼沒有調用正確的功能。所以我嘗試了FBSession的其他登錄功能。

[appDelegate.session 
    openWithBehavior:FBSessionLoginBehaviorWithNoFallbackToWebView 
    completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
     [self updateView]; 
    } 
]; 

我嘗試了所有可能的行爲,沒有一個彈出原生登錄提示。

+1

我遇到同樣的問題。它只適用於我,如果我打電話給openActiveSessionWithReadPermissions。看看我的帖子http://stackoverflow.com/q/12608008/597652 – LocoMike

回答

4

您是否先從iOS設置登錄Facebook?

一旦你這樣做,他們的示例項目Scrumptious將嘗試連接時使用本地登錄提示。

+2

從設置> Facebook登錄後,我開始看到內聯登錄和權限對話框。我有一種感覺,很多用戶不知道如何做到這一點,因爲沒有暗示甚至應該這樣做(除非他們碰巧是計算機科學家閱讀這個Stackoverflow的帖子)。代表蘋果和Facebook這是糟糕的設計。如果您在Facebook應用程序或網站上登錄,則會有更好的設計,您將自動在系統範圍內登錄。 – Pwner

1

這是由設計,並在https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/upgrading-from-3.0/

基本上第二部分描述的那樣,你不能要求與iOS6的對話框同時讀取和發佈權限。因此,您或多或少需要以交錯的方式請求它們(例如,先讀取第一次登錄,然後在您的應用實際需要發佈時發佈)。

如果您堅持使用已棄用的方法嘗試並同時讀取&發佈,那麼SDK別無選擇,只能返回到Web或應用程序切換技術。

相關問題