2017-06-01 206 views
1

我目前正在iOS上通過Facebook SDK集成Facebook登錄。所以,如果我目前有安裝在iOS版Facebook應用程序,所以如果我通過Facebook在我的應用程序登錄,應該遵循以下提到的情景:通過iOS上的Facebook SDK通過應用程序登錄Facebook?

1)如果Facebook的應用程序已經安裝,然後同時點擊Facebook登錄時, Facebook應用程序應該彈出。

2)否則,如果我們沒有Facebook應用程序,它應該轉移到網絡瀏覽器。

如何做到這一點。是通過我們的編碼手動通過Facebook還是Facebook SDK來管理它?

+0

對於通過Facebook應用程序驗證安裝在設備請看https://stackoverflow.com/questions/5559061/how-to-authorize-user-through- a-dialog-with-the-new-facebook-connect-ios-api/5683454#5683454 https://stackoverflow.com/questions/8002260/first-dialog-after-authenticating-fails-immediately-and-closes -dialog/9137887#9137887 手冊,請點擊此鏈接https://www.appcoda.com/ios-programming-facebook-log in-sdk/ –

回答

2

我們可以檢查我們有一個Facebook應用程序或沒有。但是,如果您將用戶重定向到Facebook應用程序,那麼在FB應用程序中將不會有任何登錄頁面。因爲Facebook .nativeloginBehavior使用Safari打開用戶登錄。

在該Safari瀏覽器中,您將有一個選項在應用程序中打開。用戶可以點擊它並授權應用程序本身,也可以通過在safari上書寫憑證。

更新:

我們可以檢查用戶是否安裝了Facebook應用程序,或不與URI方案。但在此之前,你必須在你的的info.plist這樣註冊:

打開的info.plist的源代碼是這樣的:

enter image description here

並粘貼下面的代碼。

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>fb</string> 
</array> 

現在檢查是這樣的:

BOOL isFBInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]] 

if (isFBInstalled) { //Check if FB app installed 
//Do something 
} 
+0

謝謝... :)請確實告訴我們如何檢查我們是否有Facebook應用程序?請編輯你的答案。 –

+0

請檢查更新答案 –

-1

使用此代碼

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() 
    fbLoginManager.loginBehavior = .native; OR 
    fbLoginManager.loginBehavior = .web; 
+0

這是默認行爲,表示通過本機登錄,可以使用Facebook應用程序。 SDK可能仍然使用Safari。我認爲.web適用於您的自定義WebView。親愛的,這裏的OP是不同的,與您的答案無關! –

相關問題