iOS facebook登录打开safari而不是本机fb应用程序

时间:2017-05-10 19:55:43

标签: ios swift facebook facebook-graph-api

之前,当我在我的应用程序中点击“使用facebook登录”时,它将打开本机FB应用程序。现在它只在safar中打开facebook,我该怎么改变呢?

我已经在文档中编辑了我的info.plist:https://developers.facebook.com/docs/facebook-login/ios

我正在使用版本:

FBSDKCoreKit(4.22.0)

FBSDKLoginKit(4.22.0)

appDelegate:
import FBSDKCoreKit
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

            //Init Facebook
            FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)



            // Override point for customization after application launch.
            return true
        }

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

            let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation])

            return handled
        }

登录页面:

import FBSDKLoginKit
@IBAction func fbLoginBtnDidTouch(_ sender: AnyObject) {
        let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()

        DispatchQueue.main.async {
            fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) -> Void in
                if (error == nil){

                    let fbloginresult : FBSDKLoginManagerLoginResult = result!

                    if (result?.isCancelled)! {
                        return
                    }

                    if(fbloginresult.grantedPermissions.contains("email"))
                    {
                        self.getFBUserData()
                    }
                }
            }
        }
    }

func getFBUserData(){
        if((FBSDKAccessToken.current()) != nil){
            FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, email"]).start(completionHandler: { (connection, result, error) -> Void in
                if (error == nil){
                    let fbJson = JSON(result ?? [])
                    if let fbId = fbJson["id"].string, let fbEmail = fbJson["email"].string {

                       //do stuff
                    }
                }
            })
        }
    }

0 个答案:

没有答案