Moh*_*dal 2 facebook ios swift
我正在尝试以某种方式保存我的访问令牌/在应用程序退出/崩溃时保持登录状态。我可以登录 Facebook 并使用 FBSDKGraphRequest 检索数据,但是每次我退出应用程序时,我都会遇到另一个登录屏幕,要求我进行身份验证(并说我已经授权了该应用程序)在进行了大量相关的 Google 搜索之后对于特定的 FBSDK 版本,我发现几乎没有任何东西可以帮助我以某种方式保持当前用户登录 Facebook。
FBSession 已被弃用(因此我无法使用它,因为它不再在最新的 SDK 中),而是我必须对 FBSDKAccessToken 做一些事情,但我真的不知道我必须做什么。
这是我用来检查当前是否登录的当前代码:
AppTabBarController(类型 UITabBarController)
override func viewDidAppear(_ animated: Bool) {
if FBSDKAccessToken.current() == nil {
//Go to Facebook Login Screen
performSegue(withIdentifier: "toFBLogin", sender: self)
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序委托
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance()
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
FBSDKAppEvents.activateApp();
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
}
...//Plus rest of protocol-required functions.
Run Code Online (Sandbox Code Playgroud)
我的问题是无法保存我所知道的 AccessToken。(每当应用程序启动时,FBSDKAccessToken.current()为零)
使用 AppDelegate 中的 swift,您可以检查用户是否使用以下内容登录:
if (FBSDKAccessToken.currentAccessToken() != nil) {
}
Run Code Online (Sandbox Code Playgroud)
只是想知道,如果你在
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
}
Run Code Online (Sandbox Code Playgroud)
最好打电话
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
Run Code Online (Sandbox Code Playgroud)
之前if,否则FBSDKAccessToken将是nil,您将再次看到登录屏幕。
例子:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
if (FBSDKAccessToken.currentAccessToken() != nil) {
//if you are logged
} else {
//if you are not logged
}
return 0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |