2017-06-01 200 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是不同的,与您的答案无关! –