iOS 中的离线通知
Posted
技术标签:
【中文标题】iOS 中的离线通知【英文标题】:Offline notifications in iOS 【发布时间】:2012-01-02 13:30:46 【问题描述】:根据 Apple.com 上的 APNS 参考,ios 设备在离线/未连接到 3G 或 WiFi 或类似设备时无法接收通知。昨天我发现了一个应用程序(Pillboxie),它声称即使用户处于离线状态也能够通知用户。我引用:
“为了使用不需要网络连接的提醒技术,Pillboxie 只能在运行 iOS 4.0 或更高版本的设备上运行。”
和
“无需网络连接!”
这两个引用均来自 App Store 中的应用说明。
我还没有成功找出它是如何工作的,以及它是否像 APNS 一样可靠。有人知道上面引用中提到的离线通知服务吗?
【问题讨论】:
【参考方案1】:Pillboxie 使用 UILocalNotification
来做到这一点。
它完全在应用程序本身上实现,不需要服务器端通知,甚至不需要互联网连接。
您将无法使用它从服务器发送推送通知到需要互联网连接(wi-fi 或 3G)的用户设备。
您可以在 Apple 的Local and Push Notification Programming Guide 中了解更多信息
【讨论】:
【参考方案2】:我相信他们指的是本地通知而不是远程通知。
Loacl 通知本地存储在用户设备中。并且由 iOS 自己拍摄。
来自 UIlocalnotification 参考:
操作系统负责在适当的时间传递通知;应用程序不一定要运行才能发生这种情况。尽管本地通知类似于远程通知,因为它们用于显示警报、播放声音和标记应用程序图标,但它们是在本地编写和传递的,不需要与远程服务器连接。
【讨论】:
我确实是。我一直想知道为什么我无法在操作系统中安排警报等,但我认为这是完全可能的。谢谢。【参考方案3】:我是 Pillboxie 的开发者。 Felipe 是正确的:Pillboxie 使用 UILocalNotifications 来安排它的提醒。我选择本地通知而不是推送有几个原因。任何一种都有优点和缺点。我选择 UILocalNotification 是因为它更符合 Pillboxie 的严重医学性质:
本地通知
优点:无需管理您自己的服务器即可与 APNS 交互。非常可靠,总是准时;适用于经常没有网络连接的人(iPod Touch 和 iPad 用户);出国旅游时工作;自动调整为当前系统时区中的当前挂钟时间(如果您在 UILocalNotification 的时区属性中设置了参考时区)。 缺点:每个应用最多有 64 个通知;只能以 1 分钟、1 小时、1 天、1 周等为单位重复。如果重复,则不能设置停止日期。【讨论】:
过去几周我一直在使用该应用程序和 UILocalNotifications,我可以验证您列出的优缺点。感谢你的回答。还有很棒的应用程序,顺便说一句。【参考方案4】:实际上有两种类型的通知。
推送 - 由 APNS 生成需要互联网连接 本地 - 由应用程序在设备上生成因此,您引用的应用可能正在使用本地通知。检查docs for more
【讨论】:
以上是关于iOS 中的离线通知的主要内容,如果未能解决你的问题,请参考以下文章