Facebook登录 – 停留在白色网页SWIFT

在我的LoginViewController中,我实现了FBSDKLoginButtonDelegate并导入了FBSDKLoginKit和FBSDKCoreKit。 我在viewDidLoad中的代码如下所示:

//setting up facebook login button var facebookLogin = FBSDKLoginButton() //want this button to conform to this protocol facebookLogin.delegate = self facebookLogin.readPermissions = ["public_profile", "email", "user_friends"] facebookLogin.frame = CGRectMake(20, 359, 335, 30) self.view.addSubview(facebookLogin) 

这是按钮的代码:

  public func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { if error != nil { print(error.localizedDescription) return } else { print("No error") self.performSegueWithIdentifier("loginToFeed", sender: self) } } 

登录后,页面将保持此白色屏幕而不是返回应用程序。 所以我继续按“完成”手动返回到应用程序,我的控制台打印出没有错误,然后继续转到源。 现在,有趣的下一部分是我没有登录,尽管登录时没有错误。 你知道这里发生了什么吗? 我错过了一步吗?

如上所述,缺少应用代表,但在两个地方。

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) } 

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application( application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } 

AppDelegate丢失了:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } 

这是我的情况:我可以使用myapp登录fb。 然后,当我关闭应用程序(返回主屏幕)并再次进入应用程序时,它会显示一个空白屏幕。 我通过这些来解决它:

在app委托中:

 func applicationDidBecomeActive(application: UIApplication) { FBSDKAppEvents.activateApp() } 

另外,我正在使用本文中的桥接文件: http : //www.brianjcoleman.com/tutorial-how-to-use-login-in-facebook-sdk-4-0-for-swift/

桥接文件如下所示:

 #ifndef Bridging_Header_h #define Bridging_Header_h #import  #import  #endif /* Bridging_Header_h */