OStack程序员社区-中国程序员成长平台

标题: iOS 静默推送通知 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:26
标题: iOS 静默推送通知

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



Best Answer-推荐答案


根据我的经验,iOS 尊重用户的选择,因此如果用户杀死了应用程序,它将保持被杀死 - 没有静默推送通知会唤醒这个应用程序。 VoIP 是一个异常(exception),但正如您所写,它应该只在 VoIP 应用程序中使用。这是有道理的,将其视为平台限制:由于用户可以控制手机上实际运行的内容,因此设备消耗的电池更少,最后,前台/系统应用程序可以使用最多的 CPU 时间。

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

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

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

如果您需要服务器向应用程序发送数据,请使用静默推送通知(或后台获取定期拉取),或者如果此数据对用户至关重要,您可以向他发送远程通知 - 如果用户认为这是一个重要的更新,他会打开应用程序。

关于iOS 静默推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51055693/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4