由于做了一款海外的 APP,推送选用了 Google 自己的推送服务 GCM,它的原理与 Apple 推送通知服务类似,消息从应用服务器被发送到统一服务器,然后再发送到设备,这样应用就无需常驻后台,因此资源占用便能很好地得到控制,有利于系统的流畅和续航。
经过研究,选用了 FCM。是 2014 年 Google 收购 Firebase 后,将 GCM 改名为「 Firebase 云消息传递( Firebase Cloud Messaging,即 FCM ) 」,它继承了 GCM 的核心基础架构,并带有新的 SDK,简化了云消息传递的开发工作。
项目使用 Flutter 开发,顺利接入后,苹果端 APP 应用退到后台或是杀掉 APP 都能收到通知,但是, Android 端 APP,只有退到后台运行能收到通知,APP 如果被 Killed 就收不到通知。不是统一推送,不需要 APP 后台常驻吗?这样的推送跟国内的极光推送之类的有什么区别呢,需要后台一直运行推送服务才能收到?
目前问题分析,Android 测试手机是三星 S7 和华为 mate 9,测试时,一定要 Google Servicel 开启才能使用 FCM,所以排除是国内定制系统对 Google service 有一定限制问题,人在中国用的中国版手机,真不知道国外推送什么情况,目前下载了 Twitter 测试下,貌似不打开 APP 后台运行,也收不到推送。
请大家对推送问题讨论下 google 推送或者 firebase 推送情况吧。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.