Ответ 1
Если вы используете SDK для входа в Facebook, вызовите
FBSDKAccessToken.currentAccessToken()
Это будет не ноль, если пользователь вошел в систему.
https://developers.facebook.com/docs/facebook-login/ios/v2.3#token
Я начал работать над iOS-приложением на Xcode, используя Swift и раскадровки. У меня есть требование, когда при нажатии кнопки я покажу пользовательскую информацию профиля Facebook на экране (только если пользователь подписывается с использованием Facebook), но если он не подписан, он автоматически перейдет на экран входа в систему и при успешном входе в систему снова будет показан вид профиля.
Как я могу это сделать?
Если вы используете SDK для входа в Facebook, вызовите
FBSDKAccessToken.currentAccessToken()
Это будет не ноль, если пользователь вошел в систему.
https://developers.facebook.com/docs/facebook-login/ios/v2.3#token
С последней версией Facebook SDK вы можете проверить это следующим образом:
if FBSDKAccessToken.current() != nil {
// logged in
}
else {
// not logged in
}
Они недавно изменились с FBSDKAccessToken.currentAccessToken()
на FBSDKAccessToken.current()
Для более удобного и стандартного кода в swift вы можете использовать этот следующий фрагмент кода. BTW Я использую 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
}
Спасибо.
в SDK для Swift 5 используйте следующую часть кода:
import FBSDKCoreKit
if AccessToken.isCurrentAccessTokenActive {
print("your session is active")
}