5

私の 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)
    }

}

ログイン後、ページはアプリに戻らず、この白い画面のままです。そこで、「完了」を押して手動でアプリに戻ると、コンソールにエラーがないことが表示され、フィードに進みます。次に興味深いのは、ログイン時にエラーが発生していないにもかかわらず、ログインしていないことです。ここで何が起こっているか知っていますか?手順がありませんか?

4

3 に答える 3

4

上記のように、アプリ デリゲートがありませんが、2 か所にあります。

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)
}
于 2016-01-25T09:23:07.530 に答える
0

私の状況は次のとおりです。myapp を使用して fb でログインできます。次に、アプリを閉じて (ホーム画面に戻って) 再びアプリに入ると、空白の画面が表示されます。そして、私はこれらによってそれを解決しました:

アプリのデリゲートで:

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 <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

#endif /* Bridging_Header_h */
于 2016-04-01T02:33:46.567 に答える