vir*_*ral 8 redirect facebook ios facebook-ios-sdk swift
我在我的应用程序中使用Facebook SDK v4.8.0 for iOS登录Facebook.(iPhone OS版本9.3)
以下是一些相关的集成代码:
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func applicationDidBecomeActive(application: UIApplication) {
FBSDKAppEvents.activateApp()
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url,
sourceApplication: "UIApplicationOpenURLOptionsSourceApplicationKey",
annotation: "UIApplicationOpenURLOptionsAnnotationKey")
}
Run Code Online (Sandbox Code Playgroud)
Login.Swift
@IBAction func btnFacebook(sender: UIButton) {
self.loginToFacebookWithSuccess({ (response) -> Void in
print("Success")
}) { (error) -> Void in
print("failure")
}
func loginToFacebookWithSuccess(successBlock: () -> (), andFailure failureBlock: (NSError?) -> ()) {
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .SystemAccount
FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email", "user_friends"], fromViewController: self, handler: { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
if error != nil {
print("error")
} else if result.isCancelled {
print("cancelled")
} else {
print("worked fine") // get Facebook user data here
}
})
}
Run Code Online (Sandbox Code Playgroud)
当用户未在设备中配置Facebook帐户时,应用程序将转到浏览器并提供Facebook登录UI.一旦用户完成登录,浏览器就会重定向到应用程序.直到这一点,一切正常.
问题
当浏览器将用户重定向到App时,没有任何反应.(不会调用成功或失败的处理程序).如果用户在浏览器中点击"完成",则会在日志中打印"已取消".但是,对于"取消"或"好"(或说"继续作为用户名")重定向后没有任何反应.
任何线索?
如果我错过了任何信息,请告诉我.
小智 3
我认为您的打开网址方法需要进行以下更改:
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool {
let isFBURL = ((url.scheme?.hasPrefix("fb\(FBSDKSettings.appID()!)"))! && url.host == "authorize")
if isFBURL == true {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation] as? String)
}
}
Run Code Online (Sandbox Code Playgroud)
如果有效的话请告诉我。
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |