Facebook SDK开始使用Safari而不是应用程序(Swift)

时间:2015-08-17 21:43:32

标签: ios facebook swift

我对编程相对较新,正在编写一个涉及用户在Facebook注册的应用程序。每当我按下facebook登录时,它就会把我带到野生动物园,并在我登录时将其踢回去。我了解应用程序商店要求您在不切换应用程序的情况下登录以实现可用性,无论如何要防止这种情况?当我退出应用程序时,似乎我的令牌没有存储,我必须重新登录。我已经查看了堆栈溢出,所有答案似乎都在客观c和2岁以上。我也更新到ios 9,所以这可能是问题的一部分。这是我在下面的视图控制器代码,我在其中创建按钮并将其添加到vc。

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result:       FBSDKLoginManagerLoginResult!, error: NSError!) {
    if (error == nil) {
        println("Login complete")
    } else {
        println(error.localizedDescription)
    }
}

func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
    println("User logged out...")
}

override func viewDidLoad() {
    super.viewDidLoad()

    if (FBSDKAccessToken.currentAccessToken() == nil) {
        println("Not logged in...")
    } else {
        println("Logged in...")
    }

    var loginButton = FBSDKLoginButton()
    loginButton.readPermissions = ["public_profile", "email", "user_friends"]
    loginButton.center = self.view.center
    loginButton.delegate = self
    self.view.addSubview(loginButton)
}

2 个答案:

答案 0 :(得分:3)

我面临着类似的问题(即使使用Parse集成和FBSDKLoginManager - 请检查此SO answer)。 FBSDKLoginButton具有loginBehaviour属性,需要将其显式设置为FBSDKLoginBehaviorSystemAccount,以防止此次切换。

答案 1 :(得分:0)

这是iOS9中的安全功能。

要启用它,您需要将LSApplicationQueriesSchemes密钥作为info.plist类型添加到array文件中,并将Facebook的查询方案添加为条目。这应该是fbauth2