【问题标题】:iOS Local Notification with Different Content each time每次都有不同内容的 iOS 本地通知
【发布时间】:2014-04-20 12:28:58
【问题描述】:

我想要一些关于如何做这样的事情的帮助:

a) 用户在我的应用程序中输入了一组字符串 b)用户设置了将这些字符串之一作为通知发布的频率 c) 用户“打开”通知 在此代码中,它将根据用户在上面 b) 中提到的首选项中输入的内容设置通知在未来 x 秒内发生。 d) 用户退出应用 e) 在未来的时间点,触发通知。

----我已经搞定了上面的内容-----

现在,当触发该通知时,我想自动设置一个新通知,其中包含用户在上面 a) 中输入的数组(或我使用的任何结构)中的下一个字符串。我希望在用户不必启动我的应用程序的情况下发生这种情况,理想情况下,如果之前的通知没有被取消,这个新通知应该替换旧通知(或者可能显示在通知列表中)。

您如何在 iOS 中“在后台”执行此类操作,而不需要用户打开应用来安排和配置下一个通知?

【问题讨论】:

    标签: ios background notifications


    【解决方案1】:

    我会调查NSUserDefaults。对于复杂度相对较低的持久存储需求(其他更复杂的替代方案是本地文件、Core Data、SQLite 或 Web 服务),这通常是一种直接的方法。根据您的描述,我会在应用程序进入后台时设置通知(即 App Delegate)。请注意,您的应用程序只有 64 个计划的本地通知可以使用,因此您必须设置一个 64 周期 for 循环,然后迭代您的字符串数组并为每个通知安排一个通知。如果您的字符串数组长于 64 个,我相信您最好的选择是希望您的用户会在 64 个通知触发内打开您的应用程序,以便您可以设置下一批。您需要有创意才能找到一种方法来跟踪您当时正在处理的数组中的哪个字符串,也许可以根据最后一批通知的设置时间进行一些数学运算(也可以存储在NSUserDefaults)以及每个通知之间的配置间隔。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @EricBrown 编辑了我的答案,提供了更多关于 NSUserDefaults 可能派上用场的详细信息。
    • @jww 没有批评或澄清,我想有时我认为我脑子里的任何东西都是显而易见的。 :] 编辑了我的答案,希望对您有所帮助!
    • 它更有帮助,但我仍然不完全在那里。一个并行:在Android平台上,我可以使用一个Service在后台运行来做到这一点。我使用 Android 警报在用户选择的时间间隔内触发服务。当服务启动时(在后台静默),它可以确定最后使用哪个字符串,然后发布一个新通知(以及导致此循环继续的随附 Intent)。 iOS有这样的安排吗?
    • @Greg Nope 不幸的是,iOS 在后台可以做的事情非常有限。您可以监控运动和位置、运行音频或 VOIP、蓝牙连接等,但您不能根据时间任意启动应用程序。最接近实现目标的方法是使用推送通知作为触发器,尽管这绝对不是微不足道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2020-10-11
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多