【发布时间】:2011-08-02 11:33:55
【问题描述】:
对于我的iOS应用程序,当用户a要删除应用程序时会触发什么事件?
【问题讨论】:
对于我的iOS应用程序,当用户a要删除应用程序时会触发什么事件?
【问题讨论】:
没有,抱歉。
您可以做的最好的事情是检查UIApplicationWillTerminateNotification 通知,但更重要的是保存您的应用程序的状态(例如在服务器上),当它转换到后台并交叉手指时,您的用户不会删除您的应用程序未运行时。因为一旦您的应用关闭,您就不再有任何控制权。
编辑:由于您想在删除应用程序时清除钥匙串的内容,因此建议您查看this其他问题。基本上,一些答案的建议不是在删除时删除钥匙串的内容,而是在用户首次使用 NSUserDefaults 启动应用程序时。
编辑:Luis Ascorbe 评论了一个想法:使用推送通知的反馈服务 (https://stackoverflow.com/a/7912045/157401) 当然,这远非完美(并非所有用户都订阅通知,通知令牌可能因其他原因失效等)但这仍然需要考虑。
编辑:Starting with iOS 10.3 Beta 2,删除应用后钥匙串数据似乎不再保留。
【讨论】:
我们无法确切知道用户何时删除了应用程序。但是,我今天遇到了一种情况,即检测到设备和用户特定的应用程序卸载(只有在特定情况下才会知道)。
以下方案可能会帮助您根据用户和设备删除需要删除的数据: 如果您正在为您的应用使用 REST API 服务和身份验证,请确保您这样做以跟踪它。
请注意,此逻辑仅在您的应用中有服务调用并且最初进行了一些身份验证时才有效。 此外,只有当同一用户尝试登录同一设备时,我们才能知道这一点。使用此逻辑无法知道在其他用例中卸载应用程序。
希望这种逻辑可以帮助我们现在使用这种逻辑的人。我是新手..如果我错了请指导。
【讨论】:
恐怕没有这样的通知。当您的应用程序未运行时,就无法收到更改通知!
相反,您需要保存用户按下主页按钮时的任何状态,即“退出活动状态”时。 (UIApplicationDelegate 中有回调,您也可以收听通知。)一般来说,我不建议收听 UIApplicationWillTerminateNotification,因为它很少在支持多任务的 iOS4 上调用。
【讨论】: