2015-08-03 2 views
7

Я использую Facebook для входа в приложение, используя FBSDKLoginManager. Facebook docs, кажется, подразумевает, что это экономит маркер для последующих запусков приложения, так что пользователь не должен войти в каждый раз:Как оставаться в системе с помощью iOS Facebook SDK 2.4

FBSDKLoginManager устанавливает этот маркер для вас, и когда он устанавливает currentAccessToken он также автоматически записывает к кешу ключей.

Я пытался получить этот маркер из упомянутого кэша, когда запуски приложения, или отображать Facebook экран входа в мое приложение, если оно не может быть найдено:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    [FBSDKProfile enableUpdatesOnAccessTokenChange:YES]; 

    if ([FBSDKAccessToken currentAccessToken]) { 
     // user is logged in, continue to app's main screen 
    } else { 
     // show login screen 
    } 

    //... 
} 

Это показывает экран входа в систему каждый раз. Документация на Facebook не объясняет, как следует обрабатывать этот очень простой случай использования. Я что-то упускаю?

ответ

2

Вам нужно позвонить в "[[FBSDKApplicationDelegate sharedInstance] приложение: application doneFinishLaunchingWithOptions: launchOptions]" ПЕРЕД попыткой получить кешированный токен.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; 

...

Смежные вопросы