应用程序被杀死时设置每日本地通知

Setting daily local notifications when app is killed

我正在制作一个 "health" 应用程序,每天向用户发送通知。每天的通知数量取决于当天(例如第一次使用后的第 2 天)并且 "health" 锻炼持续时间也取决于当天(我在那之后发送另一个通知以通知用户锻炼结束了)。

知道我们不能计划超过 64 个通知,我尝试了以下方法:1. 当用户选择其应用程序参数时设置当天和第二天的通知,然后 2. 每天使用后台获取程序设置第二天的通知(不管多久一次只要每天至少一次)。

但是这不起作用,因为如果用户从多任务列表中终止应用程序,后台提取将不会执行。

是否可以在不强制用户打开应用程序的情况下规划我的 "next day" 通知?这个想法是用户可以关注该程序,而无需每天左右打开应用程序。

我看到静默推送通知(是否允许 运行 编码而无需打开应用程序?)或 pushkit 可以解决问题,但我的应用程序不是 VoIP 应用程序,因此可能是拒绝...

有人能解决这个问题吗?

非常感谢您的回答。

Is there anyway to plan my "next day" notifications without forcing the user to open the app to do so

并非没有以某种方式让用户参与。如果您可以确定用户每天至少 点击 通知提醒,您的应用程序可以被召唤(不一定在前台)并且可以 运行 在响应。

否则,尝试确保您的应用程序每天运行的方法是推送通知(因为脉冲来自您的服务器,它运行s 一直)。当然,即使这样也不是 100% 确定。

您不需要 VoIP 来发送静默推送通知。 VoIP 应用程序确实有静默推送,它们是 "superior" 常规静默推送,因为即使用户已终止应用程序,它们也会传送到应用程序,而常规静默推送不是这种情况。

静默推送的缺点是有几种情况不会传送到应用程序: - 用户可以禁用它们 - 用户终止了应用程序 - 发送推送时有一个长时间的活动 phone 呼叫 - 设备可能处于离线状态 -等等等等

因此,静默推送不能用于确保您的应用程序每天运行。

在您的情况下,由于最终通知的是用户,服务器是否可以向他们发送用户定向推送?我的意思是服务器是否有可用的信息来知道将什么放入通知内容? (即使用户已终止应用程序,用户定向推送仍会传送给用户)。

如果服务器没有此信息,则要考虑的另一件事是推送扩展。 推送扩展允许 user-directed 推送被拦截,其内容 altered/updated 在显示给用户之前。这样,即使应用程序已终止,您也可以确保每天向用户显示推送通知(尽管仍然受制于用户可以禁用应用程序的通知这一事实)。 但这可能很棘手,因为推送扩展不是您应用程序的完整部分,它是独立的,但如果应用程序和扩展程序存储在一个组中,则可以共享基础数据。

所以每天您的服务器都可以发送 user-directed 推送,这会被您的扩展拦截,您的扩展运行并确定推送的内容应该是什么,然后将推送显示给用户。

这些是一些选项,不能说哪个适合您,因为只有您知道您的要求的准确细节。