网友提问:iOS和安卓的推送机制不一样,这点要知道
小编:老用户也踩过通知坑
iOS和安卓的推送机制这事,我从 iPhone 4 那代一路用了十几年,最有感的是半夜消息。
iPhone 往往按系统通知那套整齐弹出来,另一台安卓机有时会被省电状态拖一拍,不是谁更高级,是底层规矩不同。
iPhone 的远程通知统一走 APNs,Apple Developer 文档写得很直:开发者服务器生成通知,再交给 Apple Push Notification service 投递到设备,系统管得集中,App 不太能各玩各的后台常驻,体验就更像一套标准流程。
苹果这套也别神化,APNs 是 best-effort,尽力送达,可能重排通知;设备暂时离线时,可以先存起来再尝试投递,还有个容易忽略的点:同一设备、同一 App,持久存储通常只留一条待投递通知,离线时连来几条,后来的可能盖掉前面的。
安卓常见链路是 FCM,Firebase 文档把 Android 下行消息分成 normal 和 high;设备进 Doze 省电状态后,normal 可能延迟,high 会尽量马上送达,于是安卓推送快不快,会和省电、通知权限、系统服务框架状态绑在一起。
high 也不是免死金牌,若高优先级消息长期没有形成用户可见通知,Firebase 说 FCM 可能把它降成普通优先级,甚至交给 Google Play services 代理显示。
我现在看推送,不愿意把它讲成品牌胜负,iOS 的好处是统一、克制、省电取向明显;安卓弹性更大,不同设备体验更容易分化,真怕漏消息,先检查常用 App 的通知权限、省电限制和网络连通,比吵哪边天生更好有用。
夜雨聆风