Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:检查用户是否已经使用Facebook登录?_Ios_Swift_Facebook Login - Fatal编程技术网

iOS:检查用户是否已经使用Facebook登录?

iOS:检查用户是否已经使用Facebook登录?,ios,swift,facebook-login,Ios,Swift,Facebook Login,我已经开始使用Swift和故事板在Xcode上开发iOS应用程序。我有一个要求,点击一个按钮,我将在屏幕上显示用户的Facebook个人资料信息(仅当用户使用Facebook登录时),但如果他没有登录,它将自动进入登录屏幕,并且在再次成功登录时,将显示个人资料视图 我如何才能做到这一点?如果您正在使用Facebook登录SDK,请致电 FBSDKAccessToken.currentAccessToken() 如果用户登录,它将不是零 使用最新的Facebook SDK,您可以这样检查: if

我已经开始使用Swift和故事板在Xcode上开发iOS应用程序。我有一个要求,点击一个按钮,我将在屏幕上显示用户的Facebook个人资料信息(仅当用户使用Facebook登录时),但如果他没有登录,它将自动进入登录屏幕,并且在再次成功登录时,将显示个人资料视图


我如何才能做到这一点?

如果您正在使用Facebook登录SDK,请致电

FBSDKAccessToken.currentAccessToken()
如果用户登录,它将不是零


使用最新的Facebook SDK,您可以这样检查:

if FBSDKAccessToken.current() != nil {
    // logged in
}
else {
    // not logged in 
}

它们最近从
FBSDKAccessToken.currentAccessToken()
更改为
FBSDKAccessToken.current()

要在swift中获得更方便和标准的代码,您可以使用以下代码片段。顺便说一句,我使用的是Swift 2.2和Xcode 7.3.1

if let loggedInUsingFBTokenCheck = FBSDKAccessToken.currentAccessToken(){
     //User is already logged-in. Please do your additional code/task.
}else{
    //User is not logged-in. Allow the user for login using FB.
}
如果您想在应用程序启动过程中根据登录检查加载特定的viewController,可以将此代码放在项目的
AppDelegate
中,然后进行检查-

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Check here for login
}

谢谢。

在swift 5 sdk中,使用下一部分代码:

import FBSDKCoreKit

if AccessToken.isCurrentAccessTokenActive {
    print("your session is active")
}

他们确实要求使用Swift,即
FBSDKAccessToken.currentAccessToken()
。感谢提供此信息。然而,我有另一个疑问,现在当我再次启动应用程序时,我怎么能跳过登录页面直接转到个人资料页面。我确信这与安全有关,但我有点困惑您需要在AppDelegate中调用该函数,并根据该函数选择要转到的ViewController OK,因此,即使在我使用情节提要构建应用程序时,从AppDelegate设置视图控制器的这种方法也有效。是的,但不允许应用程序使用Info.plist中指定的情节提要,您必须自己实例化它。请参阅此答案的示例:如果尚未提供ViewController标识符,则必须提供标识符:它不应该工作。因为FBSDKAccessToken.current()正在返回非nil值。检查返回类型。它是FBSDKAccessToken!这保证了这永远不会是零。我不知道它是如何工作的,但它工作的。我认为下面应该是代码。。。如果([FBSDKAccessToken currentAccessToken]!=nil){//已登录}否则{//未登录}