检测要删除的iOS应用程序?

oxf4rvwz  于 2023-05-30  发布在  iOS
关注(0)|答案(3)|浏览(187)

对于我的iOS应用程序,当用户a要删除应用程序时,会触发什么事件?

relj7zay

relj7zay1#

没有这样的事,对不起。
你能做的最好的事情就是检查UIApplicationWillTerminateNotification通知,但更重要的是在应用程序过渡到后台时保存应用程序的状态(例如在服务器上),并祈祷用户不会在应用程序不运行时删除应用程序。因为一旦你的应用程序关闭,你就再也没有任何控制权了。
编辑:既然你想在删除应用程序时清除钥匙链的内容,我建议你看看this其他问题.基本上,一些答案所建议的不是在删除时删除密钥链的内容,而是在用户首次使用NSUserDefaults启动应用程序时删除。
编辑:Luis Ascorbe评论了一个想法:使用推送通知的反馈服务(https://stackoverflow.com/a/7912045/157401)当然,这远非完美(并非所有用户都订阅通知,通知令牌可能因其他原因而无效,等等),但这仍然是需要考虑的问题。

41ik7eoe

41ik7eoe2#

我们无法确切知道用户何时删除了应用程序。然而,我今天遇到了一种情况,检测卸载应用程序,这是设备和用户特定的(只有在特定情况下才会知道)。
以下场景可能有助于您根据用户和设备删除数据:如果您正在为应用使用rest API服务和身份验证,请确保执行此操作以跟踪它。
1.请确保使用用户ID和设备标识符的组合作为主键来存储所有用户数据。
1.考虑每个用户的每个设备标识符的bool值。
1.当用户登录到应用程序时,进行服务调用并将服务器上的设备标识符和用户ID的bool设置为true。
1.当用户注销应用程序时,进行服务调用并将该设备标识符和用户ID的bool设置为false。注销时删除所有用户特定数据(从设备和后端)(取决于您的业务逻辑)。
1.现在,如果用户再次登录并卸载应用程序而不注销,则bool将保持为true,并且所有相应的用户和设备特定数据都不会被删除。
1.当用户登录设备时,在将其更新为true之前检查该bool值。如果已经为真,则意味着同一用户在该特定设备上卸载了此应用程序,并在同一设备上再次安装。
请注意,此逻辑仅在您的应用中存在服务调用并且最初存在一些身份验证时才有效。此外,只有当同一用户尝试登录到同一设备时,我们才能知道这一点。使用此逻辑无法了解其他用例中的应用程序卸载。
希望这种逻辑可以帮助一些人,因为我们现在正在使用这种逻辑。我是新手,如果我说错了,请指导。

vjrehmav

vjrehmav3#

恐怕没有这样的通知。当你的应用程序没有运行时,它是不可能被通知更改的!
相反,你需要保存用户按下home键时的任何状态,即当它“退出活动”时。(在UIApplicationDelegate中有一个回调,你也可以监听通知。)一般来说,我不建议监听UIApplicationWillTerminateNotification,因为它很少在支持多任务的iOS 4上被调用。

相关问题