How to integrate Facebook without redirect Safari browser in iOS app with latest FBSDK

前端 未结 6 2282
悲&欢浪女
悲&欢浪女 2020-11-27 21:04

Hi i am search the answer for avoid new facebooksdk redirect to safari.how to open facebook login view inside the app.if it redirect to safari may reject in app store? help

6条回答
  •  借酒劲吻你
    2020-11-27 22:02

    Here i use the code like:

    AppDelegate.swift

    import UIKit
    import FBSDKCoreKit
     @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
     var window: UIWindow?
     func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
    }
    func applicationWillResignActive(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)
     }
    }
    

    LoginViewController.swift

     //MARK: FacebookLogin Button
    @IBAction func btnFacebookLoginClicked(sender: AnyObject) {
        let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
        fbLoginManager.logOut()
        fbLoginManager.loginBehavior = FBSDKLoginBehavior.Web //Without safari Browser
        fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self, handler: { (result, error) -> Void in
            if (error != nil){
                let fbloginresult : FBSDKLoginManagerLoginResult = result
                if(fbloginresult.grantedPermissions.contains("email")){
                    self.getFBUserData()
                    fbLoginManager.logOut()
                }
            }else if result.isCancelled {
            print("Cancelled")
        }
        })
    }
    
    func getFBUserData(){
        if((FBSDKAccessToken.currentAccessToken()) != nil){
            FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
                if (error == nil){
                    self.facebookUserDict = result as! NSDictionary
                    print(result)
                    print(self.facebookUserDict)
                print(self.facebookUserDict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as! String)
                }
            })
        }
    }
    

提交回复
热议问题