成功登录服务电话后,我正在向我的应用程序显示仪表板,我们还有其他服务电话。
问题是在运行时间应用程序之后,然后终止应用程序线程,应用程序和服务调用之间的链接被折叠。
如果用户登录应用程序并杀死应用程序,则如何维护该用户已被记录。 (杀死应用程序双击主页按钮并向上滑动应用程序)。
我是否必须在应用程序上调用相同的登录服务才能完成启动。 或检查用户是否已登录
我的问题是维护会话以访问其他服务。但是从服务器端来看,它始终表示用户在从后台杀死app后没有登录。
@All 您的信息有助于提供集成服务。 在此先感谢。
答案 0 :(得分:3)
您可以将BOOL
值设置为NSNumber
对象,并在登录完成后将其添加到NSUserDefault
。
NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults];
[boolUserDefaults setObject:[NSNumber numberWithBool:YES]
forKey:@"loginStatus"];
稍后您将能够使用-boolForKey:
中的NSUserDefaults
函数以普通BOOL的形式检索该值,并根据该值检查用户是否已登录。
此外,您可以根据您的要求维护本地数据库,coredata等。
<强>更新强>
如果您想维护会话,可以要求服务器团队为您提供登录API响应&amp;将其保存为NSUserDefaults
中的字符串,并在服务调用中传递该字符串。
答案 1 :(得分:1)
如果登录成功,请在下方。
[[NSUserDefaults standardDefaults] setValue:@"yes" forKey:@"isLoggedIn"];
[[NSUserDefaults standardDefaults] synchronize];
用于检查以下用途。
if ([[[NSUserDefaults standardDefaults] valueForKey:@"isLoggedIn"] isEqualToString:@"yes") {
NSLog(@"You are logged in");
} else {
NSLog(@"You are not logged in");
}
答案 2 :(得分:0)
我不确定您的服务器实施。通常,登录后,客户端(移动应用程序)将收到令牌。此令牌应包含在之后发出的请求中,以向服务器显示该用户已登录。
当从服务器返回登录api时,http标头是一个开始检查是否设置了某个标记的好地方。如果是,您可能需要保存该令牌:
[[NSUserDefaults standardDefaults] setValue:token forKey:@"loginToken"];
[[NSUserDefaults standardDefaults] synchronize];
然后,如果应用程序被杀死,则在启动时:
NSString *token = [[NSUserDefaults standardDefaults] valueForKey:@"loginToken"];
//set the token to http header