【问题标题】:Keep Facebook access after app is killed iOS Swift在应用程序被杀死后保持 Facebook 访问 iOS Swift
【发布时间】:2016-08-03 22:04:21
【问题描述】:

我正在用 Swift 开发一个 iOS9 应用程序,并使用最新的 Facebook SDK 进行登录。我已按照文档进行操作,登录工作正常,但重新启动时无法保留 facebook 访问令牌。具体来说,当我在模拟器和实际设备上终止应用程序然后重新启动应用程序时,尽管之前已登录,但我必须在同一设备上再次登录 Facebook。当我继续登录时,它会链接到 Facebook,并显示以下消息:“您已经授权应用名称”。

根据 Facebook SDK 文档,一旦登录,应用程序应缓存 FBSDKAccessToken,并且在用户退出并重新启动应用程序时它不应立即过期。

我的 AppDelegate.Swift 中有以下代码:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
    }

然后我在 viewDidLoad() 中进行以下检查:

if(FBSDKAccessToken.currentAccessToken() != nil){} 

有人知道为什么重新启动应用程序会使 AccessToken 为零吗?


编辑:

当我点击我的 Facebook 登录按钮时,我也收到此错误。我不确定这是否是上述问题的原因。 :

canOpenURL: failed for URL: "fbauth://authorize/?client_id=1068860826518986&default_audience=friends&display=touch&e2e=%7B%22init%22%3A1460515013815%7D&legacy_override=v2.4&redirect_uri=fbconnect%3A%2F%2Fsuccess&
        response_type=token%2Csigned_request&return_scopes=true&scope=public_profile%2Cema
        il%2Cuser_friends&sdk=ios&sdk_version=4.4.0&state=%7B%22challenge%22%3A%22YXJWy0wjHG2r4lnyAe%5C%2FMjqM3xy4%3D%22%2C%220_auth_logger_id%22%3A%22591AC45B-AB19-49AE-A994-
        851223E03265%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A0%7D" 

    - error: "This app is not allowed to query for scheme fbauth"

【问题讨论】:

  • 签入Info.plist,您已将NSAllowsArbitraryLoads 设置为YES
  • @bitsoverflow 是的,我也这样做了。结果还是一样。

标签: ios iphone swift facebook facebook-access-token


【解决方案1】:

其删除用户默认保存。因此,当您重新启动应用程序时,您必须再次登录。

【讨论】:

    【解决方案2】:

    确保您没有任何代码在应用程序终止方法上生成 FBSDKLoginManager 的 logOut(),如下所示

    func applicationWillTerminate(application: UIApplication) {
        let loginManager: FBSDKLoginManager = FBSDKLoginManager()
        loginManager.logOut()
    } 
    

    如果在设备重启时存在此类代码,则您的访问令牌不再有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-15
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      相关资源
      最近更新 更多