2016-10-10 11 views
1

バグを一貫して再現する方法がわからないのですが、アプリを削除してデバイスに再インストールすると、FacebookのログインボタンはSafariには行かないが、代わりにアプリに行くと戻ってくる

Facebookボタンでログインするとしばらく時間がかかる。 Facebookアプリが開きます。通常、それが動作する方法は、サファリでFacebookのブラウザを開くと仮定しています。

とにかくFacebookアプリを開き、何もせずに自分のアプリに戻ってきます。そして、私は自分のアプリを削除して再ダウンロードするまでログインボタンを押すたびに何度も何度も何度も何度も何度も何度もやり続けています。他の誰かがそれを体験していますか?私はここで

が問題のGIFですスウィフト3を使用しています:ここ

Gif of Facebook login problem

とすると、Facebookのログインのための私のコードです:

fbLoginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, error) -> Void in 
     if (error != nil){ 
      print(error) 

      let loginManager = FBSDKLoginManager() 
      loginManager.logOut() 
      var controller:LoginController 
      controller = self.storyboard?.instantiateViewController(withIdentifier: "LoginController") as! LoginController 
      SCLAlertView().showWarning("Login Error #23", subTitle: "Could not log you in, this one is on facebook") 
      self.present(controller, animated: true, completion: nil) 
     } else { 
      print("logging in") 

     } 
    } 
+0

あなたはFBSDKLoginBehaviorWebにFBSDKLoginManagerの設定動作を使用して行うことができます。また、以下のリンクを参照してください:http://stackoverflow.com/questions/31311125/how-to-integrate-facebook-without-redirect-safari-browser-in-ios-app-with-latest – KKRocks

答えて

1

にサーバル動作オプションがあります。 Facebook SDKでログインする場合は、fbLoginManagerのプロパティをloginBehaviorに設定して1つを選択できます。

typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior) { 
    /*! 
    */ 
    FBSDKLoginBehaviorNative = 0, /*! 
    */ 
    FBSDKLoginBehaviorBrowser, /*! 
    */ 
    FBSDKLoginBehaviorSystemAccount, /*! 
    */ 
    FBSDKLoginBehaviorWeb, 
}; 
あなたのケースでは

、あなたはFBSDKLoginBehaviorBrowserに設定することができ、一例は次のようになります。

func fbLogin(){ 
    //firstly check whether system fb account available, if so use it 
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook){ 
     fbLoginManger.loginBehavior = FBSDKLoginBehavior.SystemAccount 
    } 
    //then check whether fb app available, if so open it 
    else if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb://")!){ 
     fbLoginManger.loginBehavior = FBSDKLoginBehavior.Native 
    } 
    //lastly, present a popup web inside app 
    else{ 
     fbLoginManger.loginBehavior = FBSDKLoginBehavior.Web 
    } 

    fbLoginManger.logInWithReadPermissions(["public_profile"], fromViewController: self) { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in 
     ... 
    } 
関連する問題