iOS静默推送通知

时间:2018-06-27 06:12:50

标签: ios swift3 push-notification apple-push-notifications silent-notification

我正在尝试在我的应用程序中实现无提示推送通知,当无提示通知到来时,我需要在服务器中更新一些数据。我使用的是Pushkit,它使用VoIP证书进行静默推送通知,但该应用已被Apple拒绝,并说“我不能使用VoIP”证书。苹果似乎拒绝了它,因为我的应用程序中没有任何VoIP通话功能。在那种情况下,如何实现静默推送通知,以便即使我的应用程序没有运行(即使不是在后台)也可以被激活,并且可以更新服务器?

1 个答案:

答案 0 :(得分:2)

根据我的经验,iOS尊重用户的选择,因此,如果用户终止了该应用程序,它将保持终止状态-没有静默推送通知将唤醒此应用程序。 VoIP是个例外,但正如您所写,它只能在VoIP应用程序中使用。考虑到这是一个平台限制,这是有道理的:由于该用户可以控制手机上实际运行的内容,因此该设备消耗的电池更少,最后,前台/系统Apps拥有最多的CPU时间。

在后台处理数据的技术很少:

  1. 可用内容的推送通知:万一被挂起,将唤醒应用程序;如果系统/崩溃将其杀死,则将其启动。请注意,这只会打开一个30秒的窗口,APNS会限制通知的数量。
  2. 背景获取功能将以类似的方式起作用。
  3. 背景任务可完成现有任务-但这仅在将应用移至后台时使用。

如果您需要App将更新发送到服务器,我相信以上内容就足够了(除非您的应用正在监视用户,一旦用户完成与App的交互,它就应该具有所有相关数据)。

如果您需要服务器将数据发送到App,请使用静默推送通知(或后台提取以进行定期提取),或者如果此数据对用户至关重要,则可以向他显示远程通知-如果用户认为重要的更新,他将打开该应用。