快速应用程序切换iOS 11 Facebook登录

时间:2017-10-14 17:30:18

标签: ios swift facebook

目前我的facebook登录会执行以下操作:

  1. 点击使用fb按钮登录
  2. 要求允许使用“facebook.com”登录
  3. 询问是否使用应用程序或使用Safari视图控制器中的电子邮件或电话登录
  4. 如果选择了应用:要求打开Facebook应用
  5. 要求允许fb应用程序使用您的登录
  6. 返回应用
  7. 对我来说,这些步骤太多了。我想做一些像优步应用程序,它的Facebook登录流程是:

    1. 点击使用fb按钮登录
    2. 要求打开Facebook应用
    3. 要求允许fb应用使用您的帐户登录
    4. 返回应用
    5. 优步的流程: uber flow

      Facebook Fast App Switch

      有一篇文章说这是Fast App Switch登录的方式,这是我想要的应用程序,如果安装了facebook应用程序,我希望登录直接完成到应用程序。

      我在登录按钮操作时使用了此代码而没有运气:

      let fbLoginManager = FBSDKLoginManager()
      fbLoginManager.loginBehavior = .native
      
      fbLoginManager.logIn(withReadPermissions: ["public_profile", "email"], from: self) { (result, error) in
      
          let credential = FacebookAuthProvider.credential(withAccessToken: accessToken.tokenString)
      
          // Perform login by calling Firebase APIs..
      }
      

      在我的 Info.plist

      <key>CFBundleURLTypes</key>
      <array>
          <dict>
              <key>CFBundleURLSchemes</key>
              <array>
                  <string>fbXXXXXXXX</string>
              </array>
          </dict>
      </array>
      <key>FacebookAppID</key>
      <string>XXXXXXXX</string>
      <key>FacebookDisplayName</key>
      <string>My Beautiful App</string>
      <key>LSApplicationQueriesSchemes</key>
      <array>
          <string>fbapi</string>
          <string>fb-messenger-api</string>
          <string>fbauth2</string>
          <string>fbshareextension</string>
      </array>
      

      在我的 AppDelegate.swift

      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
          FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions:launchOptions)
          return true
      }
      
      func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
          let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
          return handled
      }
      

      Facebook SDK版本: 4.27.1

      使用FBSDKCoreKit(4.27.1) FBSDKLoginKit(4.27.1) FBSDKShareKit(4.27.1)

0 个答案:

没有答案