Facebook Swift SDK登录不会打开原生对话框

时间:2017-03-05 03:35:42

标签: swift facebook

我正在将Facebook Swift SDK集成到我的应用中,然后我按照这些步骤进行了操作:

使用CocoaPods安装依赖关系 - pod 'FacebookLogin'

将以下内容添加到Info.plist:

<key>FacebookAppID</key>
<string>**my_app_id**</string>
<key>FacebookDisplayName</key>
<string>**my_app_name**</string>
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb**my_app_id**</string>
    </array>
  </dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>

添加到AppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
  SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)

  return true
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
  return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}

在视图控制器中调用:

LoginManager()
  .logIn([.publicProfile, .email], viewController: self) { result in
  switch result {
  case .failed(let error):
    print(error)
  case .cancelled:
    print("User cancelled login.")
  case .success(_, _, let accessToken):
    print("User logged in")
  }
}

关于它。当我单击按钮时,我希望加载本机登录,切换到FB应用程序,然后返回到我的应用程序。但是它永远不会发生,并且SFSafariViewController上会加载一个网页。

我还尝试将loginBehavior强制转换为.native以及所有其他选项,但更改它绝对没有效果。

为了使本机登录成功,我还需要做些什么?

1 个答案:

答案 0 :(得分:2)

我在FB Developers博客中找到了this post,他们说,与iOS 9及更高版本上的快速应用交换机相比,Safari VC具有更好的点击率,并决定将其作为默认行为。

  

自iOS 9发布以来,过去6周内,我们一直在监控超过250个应用的数据和点击率。 SVC登录的点击率(CTR)优于app-switch登录的点击率,并且以app-switch体验的3倍速度提升。这表明SVC体验对于今天的人和开发人员来说更好,并且从长远来看可能是最好的解决方案。因此,最新的iOS SDK SDK使用SVC作为登录的默认体验。