静默推送通知和 iBeacons

Silent push notifications and iBeacons

我开发了一个基于 iBeacon 的小型应用程序,当该应用程序检测到我们的一个 iBeacon 时,它会调用 Web 服务以获取数据集并向用户发送本地通知。所有这些都正常工作。

我现在提出了这样的想法,即这些本地通知可能会在很短的时间间隔内发生变化,并包含新内容。问题是,如果用户没有离开 iBeacon 的区域并重新进入,应用程序将不会 "wake up" 并且用户将不会收到新的更新通知。

在询问如何解决问题后,有人建议使用远程通知。读到它我发现了静默远程通知,但我不确定我是否可以像我想的那样使用它们。

我的想法是,当通知被修改或创建并与服务器上的 iBeacon 相关联时,向应用程序发送静默推送通知,以便它 "wakes" 如果不在前台。因此,当应用程序 "wakes up" 时,你可以做几秒钟的测距,如果附近有任何 iBeacon 检测并发送新的通知。

这可能和允许吗?我可以发送我想要的所有静默推送通知还是有一些限制?谢谢

这是可能的,也是允许的。您可以在此处的“使用推送通知启动下载”部分阅读更多相关信息:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

但是,也有一些缺点:

  1. 远程通知到达的速度可能很慢,实际上 Apple 甚至不能保证到达。

  2. 考虑到您需要构建服务器 ifrastructure 来发送它们,因此设置它们有点令人头疼。

一个不太及时的替代方法是定期刷新,但 OS 通常让您的应用每天只执行一次。请在此处查看机会性地获取少量内容:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html