2015-11-22 58 views
10

我已将Parse Framework与所有Facebook依赖项集成到我的应用中。 我的plist配置是这样的:IOS 9 Swift - 解析Facebook登录无法打开本地Facebook应用

<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应用。

我错过了什么?

+0

试试这个:http://stackoverflow.com/questions/33315083/error-in-facebook-login-ios-9-swift – lukaivicev

回答

5

由于iOS 9 Facebook SDK不再通过Facebook应用提供授权。 原因是在应用程序可以打开其他应用程序之前会提示用户,这会影响用户体验。

你唯一的选择是使用FBSDKLoginBehaviorSystemAccountFBSDKLoginBehaviorBrowser

PFFacebookUtils.facebookLoginManager().loginBehavior = FBSDKLoginBehavior.SystemAccount 
+0

感谢您的回复,但是我可以看到其他应用程序成功使用此方法(如AirBnB)。我尝试添加'(PFFVideosUtils.facebookLoginManager())。loginBehavior = FBSDKLoginBehavior.SystemAccount'没有运气。任何其他想法? –

+0

你总是可以使用旧版本的SDK来取回'FBSDKLoginBehavior.Native',但不推荐。为了使'FBSDKLoginBehavior.SystemAccount'工作,FB需要在iOS设置中设置,否则它将回退到浏览器。 –

+0

您能否详细说明需要配置的设置?我在IOS平台中唯一设置的是Bundle ID。 P.S - .Native具有相同的效果 –