我使用Facebook SDK for Swift,通过cocoapods安装。我已按以下方式配置示例应用程序:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb169432773464820</string> </array> </dict> </array> <key>CFBundleVersion</key> <string>1</string> <key>FacebookAppID</key> <string>{APPID}</string> <key>FacebookDisplayName</key> <string>AppDisplayName</string> <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fbauth</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
在此之后,我创建了一个自定义UIButton,其操作如下:
@IBAction func facebookTouched(sender: UIButton) {
let loginManager = LoginManager()
loginManager.logIn([.PublicProfile], viewController: self) { loginResult in
switch loginResult {
case .Failed(let error):
print(error)
case .Cancelled:
print("User cancelled login.")
case .Success(let grantedPermissions, let declinedPermissions, let accessToken):
print("Logged in!")
}
}
}
单击UIButton时,将调用该操作,Safari浏览器将打开Facebook页面。 由于我已经接受了这个应用程序,因此我得到以下消息&#34; ApplicatioName已被接受&#34;当我按下&#34; Ok&#34;浏览器移动到空白页面,没有任何反应。如果我按下&#34;完成&#34;按钮.Cancelled case被调用。
有什么想法吗?干杯
答案 0 :(得分:1)
AppDelegate上的问题是Facebook ApplicationDelegate方法还需要调用:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
ApplicationDelegate.shared.application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
return true
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}