繁体   English   中英

即使在“删除”应用程序之后,有没有办法跟踪经过的时间?

[英]Is there a way to keep track of elapsed time even after app is “Deleted”?

我正在开发一个应用程序(仅适用于iPAD),该应用程序从“首次”安装该应用程序起每隔三天(业务要求)向用户显示一个弹出框。 我正在使用NSTimer做到这一点。 如果用户在三天前删除该应用程序并重新安装该应用程序,则实施会中断。 在这种情况下,三天的计数器将重新启动。 我知道使用日期可能不是一个好主意,因为用户可以通过设置更改日期。

有没有办法可以使NSTimer(或类似的东西)在删除应用程序后仍保持运行?

NSTimer* msgTimer = [NSTimer scheduledTimerWithTimeInterval: 259200 target: self selector: @selector(showMsg:) userInfo: nil repeats: NO];

我能想到的唯一方法是每次关闭应用程序时,将最后一次通知时间的字符串表示形式保存在钥匙串中。 删除应用程序后,钥匙串不会清除。 尽管从技术上讲这是对钥匙串的滥用,但它可能会起作用,我怀疑您会遇到任何商店提交问题。

每当启动该应用程序时,请检查它是否是自上次安装以来首次启动(将此信息保存为默认值)。 如果是第一次,请检查钥匙串时间戳,并与当前时间戳进行比较,然后从那里开始。

假设用户删除了该应用并在第二天安装了该应用。 检查钥匙串,您会看到它在23小时前被删除,然后以减去23小时的时间启动计时器(因此它将在2天1小时内发出通知)。 希望一切都有道理。

否则,如果该应用程序通常已连接到互联网,则可以使用某种服务器。

删除应用程序后,您的应用程序就不会沙箱化,您所做的任何事情都会消失。 您将需要某种Web服务的帮助才能实现所需的行为

我不这么认为,但我可能是错的(有人可以纠正我)。 即使这听起来可能是做这样的事情的坏方法,也可能。

如何使用本地推送通知来实现这样的目标? 似乎很适合这种情况。

用于设置计划通知的相关Appl文档

您还可以使用iCloud的键值数据存储来存储初始安装日期。 如果您同时在本地存储日期并从iCloud同步日期,那么除非用户不上网,否则用户将很难避免获取更新。

当然,这取决于它们是否已在设备上登录到iCloud,并且需要iOS 5或更高版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM