我正在将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
以及所有其他选项,但更改它绝对没有效果。
为了使本机登录成功,我还需要做些什么?
答案 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作为登录的默认体验。