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