1. 定义与触发方式
-
本地推送(Local Notification)
-
由 应用自身 在设备本地生成和触发,无需依赖外部服务器。
-
常用于基于时间或用户行为的提醒(如闹钟、任务提醒、定时通知)。
-
-
远程推送(Remote Notification/Push Notification)
-
由 远程服务器(通过 Apple 的 APNs 服务)发送到设备。
-
常用于实时性强的场景(如即时通讯消息、新闻推送、社交互动提醒)。
-
2. 数据来源
-
本地推送
-
数据完全存储在设备本地,通过代码直接定义内容(标题、声音、触发时间等)。
-
示例:
UNMutableNotificationContent和UNTimeIntervalNotificationTrigger。
-
-
远程推送
-
数据由服务器动态生成,通过 APNs(Apple Push Notification Service)转发到设备。
-
需要服务器端配置推送证书,并与 APNs 通信。
-
3. 网络依赖
-
本地推送
-
无需网络连接,完全离线运行。
-
即使设备处于飞行模式,也能触发。
-
-
远程推送
-
依赖设备与 APNs 的网络连接。
-
若设备断网,推送会延迟到网络恢复后接收。
-
4. 权限与配置
-
本地推送
-
只需请求用户授权(
UNUserNotificationCenter)。 -
无需额外配置(如服务器或 APNs 证书)。
-
-
远程推送
-
除了用户授权,还需:
-
在 Apple Developer 账号中配置推送证书。
-
服务器端实现与 APNs 的通信逻辑。
-
在 Xcode 项目中启用
Push Notifications能力。
-
-
5. 适用场景
-
本地推送
-
定时提醒(如每日喝水提醒、日历事件)。
-
基于用户行为的反馈(如任务完成后的通知)。
-
离线场景下的功能(如倒计时结束提醒)。
-
-
远程推送
-
实时消息(如微信消息、邮件通知)。
-
动态内容更新(如新闻头条、促销活动)。
-
多设备同步(如在 iPad 上操作后,同步到 iPhone)。
-
6. 数据量与自定义能力
-
本地推送
-
可携带更多自定义数据(通过
userInfo字典)。 -
支持复杂触发器(如精确的日历时间、重复间隔)。
-
-
远程推送
-
数据大小受 APNs 限制(最大 4KB)。
-
内容由服务器动态生成,灵活性依赖于后端逻辑。
-
7. 安全性
-
本地推送
-
数据完全由应用控制,无外部传输风险。
-
-
远程推送
-
需通过 APNs 加密传输,但仍需防范服务器安全漏洞。
-
总结
-
选择依据:
-
若需 离线触发 或 基于本地事件,优先用本地推送。
-
若需 实时性 或 动态内容,选择远程推送。
-
-
混合使用:某些场景可结合两者(如通过远程推送唤醒应用,再触发本地推送更新数据)。
31

被折叠的 条评论
为什么被折叠?



