基本原理差异
- iOS:采用苹果推送通知服务(APNs)。应用向APNs服务器注册设备令牌,服务器通过该令牌向特定设备推送消息。APNs负责维护与设备的持久连接,当有推送消息时,APNs将消息推送给设备。
- Android:使用 Firebase 云消息传递(FCM)等类似服务。设备向Google云消息传递服务器注册,获取注册令牌。应用服务器通过注册令牌与Google服务器通信,Google服务器再将消息推送给设备。Android设备可能有多个推送服务提供商,不同厂商可能有定制的推送服务。
推送消息格式差异
- iOS:推送消息以JSON格式构建,包含aps(Apple Push Service)顶级键,里面有alert(通知内容)、badge(应用图标角标数)、sound(通知声音)等子键。例如:
{
"aps": {
"alert": "新消息",
"badge": 1,
"sound": "default"
}
}
- Android:同样以JSON格式为主,结构更灵活。包含collapse_key(消息折叠键)、priority(优先级)、notification(通知相关内容,如title、body等)等字段。例如:
{
"collapse_key": "type_a",
"priority": "high",
"notification": {
"title": "新通知",
"body": "这是一条来自Android的通知"
}
}
系统权限管理差异
- iOS:用户在应用初次请求推送权限时,系统会弹出统一的权限请求弹窗,用户选择允许或拒绝。一旦拒绝,应用需引导用户至设置手动开启。权限管理集中且统一。
- Android:不同版本权限管理有所差异。在某些版本中,应用可直接向系统注册推送,无需用户确认。从 Android 8.0(API 级别 26)开始,引入通知渠道概念,开发者需创建通知渠道并定义渠道属性,用户可针对不同渠道分别设置通知权限,权限管理相对更细致和分散。