IOS 9 Swift - Parse Facebook, логин не открывает родное приложение Facebook
Я интегрировал Parse Framework со всеми зависимостями Facebook в свое приложение. Моя конфигурация plist выглядит так:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbXXXXXXXXXXXXX</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>XXXXXXXXXXXXX</string>
<key>FacebookDisplayName</key>
<string>XXXXX</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
</array>
Мой код входа выглядит так:
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissionsArray, block: { (user, error) -> Void in
if(error != nil){
print("Login failed")
}else{
if let currentUser = user{
if(currentUser.isNew){
print("New user")
}else{
print("Login success")
}
}else{
print("Login canceled")
}
}
})
Все работает хорошо, однако процесс входа выполняется в Safari, а не в установленном приложении Facebook.
Что мне не хватает?
2 ответа
Начиная с iOS 9, Facebook SDK больше не предлагает авторизацию через приложение Facebook. Причина в том, что пользователям будет предложено, прежде чем приложение сможет открыть другое приложение, и это влияет на UX.
Ваш единственный вариант - использовать FBSDKLoginBehaviorSystemAccount или FBSDKLoginBehaviorBrowser
PFFacebookUtils.facebookLoginManager().loginBehavior = FBSDKLoginBehavior.SystemAccount
Когда я проверил это руководство, я интегрировал Facebook Login в свое приложение, надеюсь, это поможет вам:
http://www.appcoda.com/ios-programming-facebook-login-manual/