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 中的离线通知的主要内容,如果未能解决你的问题,请参考以下文章

当该应用的通知关闭时,在 Android 上接收 Firebase 静默通知

iOS 中的离线地图

ios应用中的离线语音输入

ios模拟器中的离线/在线事件

uniapp 消息推送

向 ios 发送推送通知以与离线用户聊天,openfire xmpp