1

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

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

但是,这不起作用,就好像用户从多任务列表中杀死应用程序一样,后台提取将不会被执行。

有没有办法在不强迫用户打开应用程序的情况下计划我的“第二天”通知?这个想法是用户可以关注程序,而不必每天左右打开应用程序。

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

有没有人有解决这个问题的方法?

非常感谢您的回答。

4

2 回答 2

1

您不需要 VoIP 来发送静默推送通知。VoIP 应用程序确实有静默推送,并且它们比常规静默推送“优越”,因为即使用户已经杀死了应用程序,它们也会传递给应用程序,而常规静默推送则不是这样。

静默推送的缺点是在以下几种情况下它不会传递到应用程序: - 用户可以禁用它们 - 用户已终止应用程序 - 发送推送时有一个很长的活动电话- 设备可能离线 - 等等等等。

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

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

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

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

这些是一些选项,不能说哪个对您来说是正确的,因为只有您知道您的要求的确切细节。

于 2017-02-08T16:02:57.293 回答
0

有没有办法在不强迫用户打开应用程序的情况下计划我的“第二天”通知

并非没有以某种方式涉及用户。如果您可以确定用户至少每天都会点击通知警报,那么您的应用程序可以被召唤(不一定在前台)并且可以运行代码作为响应。

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

于 2017-02-08T15:45:33.837 回答