У меня есть приложение, которое требует входа пользователя для используй это. У меня есть значение X минут, которое, если приложение было неактивным в течение этого времени, выйдет из системы, поэтому, когда они запустят приложение в следующий раз, им придется снова ввести свои данные для входа.
Есть ли простой и эффективный способ сделать это? Я думаю, мне нужно добавить NSTimer
в мой AppDelegate
и добавить логику в метод didFinishLaunchingWithOptions
. У меня минуты хранятся как int в NSUserDefaults
.
Например, если приложение не использовалось в течение 60 минут
, выведите пользователя из системы (тогда на самом деле это не приведет к выходу пользователя из системы, но при следующем запуске приложения оно будет выйдите из системы и покажите экран входа в систему и т. д.).
Изменить:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *userContextDictionary = [dataSource fetchUserContext];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setDouble:[[userContextDictionary valueForKey:@"autologout_idle_timeout"] doubleValue] forKey:@"timeoutLength"];
double timeDifference = ([[NSDate date] timeIntervalSince1970] - [userDefaults doubleForKey:@"Close Time"]) / 60;
if (timeDifference > [userDefaults doubleForKey:@"timeoutLength"]) {
NSLog(@"Timeout Hit");
} else {
NSLog(@"No Timeout");
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
double currentTime = [[NSDate date] timeIntervalSince1970];
[userDefaults setDouble:currentTime forKey:@"Close Time"];
}