【发布时间】:2018-01-31 03:26:30
【问题描述】:
一直在研究这个主题,想知道是否可以将函数安排在特定时间运行,就像您可以安排本地通知在特定时间触发一样。即使应用程序已关闭或在后台运行,也需要它来运行。
用例:
我正在开发一个应用程序,该应用程序当前每天向用户发送一条随机消息“来自一系列可能的消息”作为本地通知。此本地通知在用户从日期选择器指定的特定时间触发。即使应用程序关闭,所有这些都按预期工作。
现在我正在尝试找出一种方法来显示应用程序内收到的最后一个随机通知的内容。我想为本地通知的 body.content “随机消息”设置一个标签文本......但只有在他们收到通知之后。我不想在它交付之前在应用程序中显示它。示例:用户打开应用程序,将本地通知时间设置为下午 3 点。用户关闭应用程序,下午 3 点收到通知,他们在下午 4 点打开应用程序,应用程序内的标签显示与他们收到的通知相同的消息。由于本地通知设置为重复,应用程序中的消息应保持不变,直到第二天下午 3 点。
问题,显然您无法检索已传递的本地通知的内容。这就是为什么我想知道是否可以在特定时间安排功能。如果是这样,我可以将生成的消息保存为用户默认值,然后在 5 秒内触发 UNTimeIntervalNotification 并使用相同的保存值。打开应用程序后,我可以使用保存的值更新 label.text。这样,他们每次打开应用时,应用中的标签始终与上次收到的通知相同。
我是 swift 语言的新手,非常感谢任何其他关于此问题可能解决方案的建议。
【问题讨论】:
-
“即使应用程序已关闭或在后台运行,也需要运行它。”这没有技术意义。
-
此外,您甚至没有指定您的开发平台。
-
更新了更多细节,不知道怎么没有意义,你能解释一下吗?或者提供解决方案?
-
你在尝试做的事情上走错路了。您可以在应用程序打开时确定消息,安排本地通知并将消息存储在 UserDefaults 或其他内容中。没有必要让函数在给定时间运行。
-
@EmilioPelaez 您如何建议仅在发送通知后才使用该 UserDefaults 值?否则,如果他们在发送通知之前再次打开应用程序,我将在应用程序发送之前在应用程序中显示存储的消息。
标签: ios swift unusernotificationcenter