我有一个应用程序,我已经实现了登录,注销和一些自定义操作。某些操作只有在用户登录时才能执行,但如果用户在登录后删除了应用程序并且没有注销,那么我就无法让其他用户知道他不再是用户而且全部只有在此用户再次安装应用程序并登录后,才能执行与登录关联的操作。
是否有任何方法在应用删除之前被调用?这样我就可以在该函数中触发logout方法。有什么方法可以使用委托方法或通知在用户从他的设备上删除应用时注销用户?
答案 0 :(得分:5)
不幸的是,删除应用时没有调用任何方法。
我更喜欢一种解决方案,当用户退出应用程序时退出用户并在他再次打开应用程序时进行安静登录,而不会注意到他已退出。因此,您需要存储凭据。
因此,您可以确保用户在不使用该应用时始终注销。
但在我看来,您应该更改后端,以便用户是否安装了应用程序无关紧要。但这可能取决于您的使用案例。
答案 1 :(得分:2)
无法知道用户何时删除了他们的应用。您可以使用NSUserDefaults
在登录后存储他们的登录名,并在您尝试使用他们必须登录使用的服务时检查它是否存在。如果应用程序已被删除并重新安装(或新安装),则NSUserDefaults值将为nil,如果它们是已建立的用户,则它将等于其用户名。
[[NSUserDefaults standardUserDefaults] setObject:@"the_user_name" forKey:@"kUsername"];
[[NSUserDefaults standardUserDefaults] synchronize];