我正在尝试通过 Facebook 将身份验证添加到我的应用程序中,在我的 plist 中:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb146156719258538</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>146156719258538</string>
<key>FacebookDisplayName</key>
<string>applicationTest</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
在我的 AppDelegate 中我有一个方法:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let appId = FBSDKSettings.appID()
print("app id:" + appId!)
print("url id:" + String(url.scheme!.hasPrefix("fb\(appId)")))
print("url host:" + String(describing: url.host))
if url.scheme != nil && url.scheme!.hasPrefix("fb\(appId)") && url.host == "authorize" { // facebook
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}
return false
}
当在我的 ViewController 中单击 FB 登录按钮时,您会期望执行 AppDelegate 方法的 IF 语句中的代码。然而,这返回 false,我已经调试了代码,看起来该行:
url.scheme!.hasPrefix("fb\(appId)")
即使正在打印正确的 appId,也会返回 false。
有谁知道为什么会这样吗?
P.S:打印 url.scheme 给出:
fb146156719258538
最佳答案
您的 Facebook 帐户设置正确吗?
关于ios - FBAuth 不工作 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44052019/