fcm 推送
推送
即手机收到的消息,app在后台留下一个进程,实时联网即可实现推送,但是我们不希望app一直在后台。 所以苹果就有了系统级的推送服务,只要该系统进程在后台,那么app想要推送的消息会先发给苹果服务器,再由苹果的服务器发给用户的手机。是无后台推送,省电、省内存、提升流畅度。 安卓有了推送又和苹果更接近了一点。
FCM
Firebase Cloud Messaging (),国内俗称谷歌推送。 在海外,和苹果推送一样好用;在大陆,苹果有云上贵州。有懂得都懂的原因,以及大陆消费者习惯原因,并没有在大陆推广开来。面向大陆的app也没有接入,而是介入了定制rom的推送,华米OV都有自己的推送,显然海外app不会接入大陆定制的推送。
FCM 启动!
打开手机拨号输入: *#*#426#*#*
如果没有打开界面则,是国产定制系统阉割了谷歌框架。 按照这个文档安装谷歌套件。
Server 显示 Connected
则网络连接成功。 Time connected
是本次连接的时间,每次打开 426 时显示时间越长表示网络连接越稳定。 要确保连接成功即 Server: Connected
否则以下全都是空谈,如果你所在的地区要开代理才能连接上,那还是放弃算了,除非你能接受24小时开代理。
给这个进程:
- 后台上锁。
- 电池优化等设置中完全允许后台运行。
- 允许自启动。
检查app 是否介入了 fcm
下载app LibChecker Google play,github 有 Firebase 就算是接入了。 可以看到安卓微信只接入了fcm,不接入任何一个国产推送,爱舔洋尻,可见张小龙的孝顺。
一次成功的fcm推送的完整过程
- 该 app 接入了 fcm , 可以在fcm上注册包名
- 通知发送给谷歌服务器
- 谷歌服务器发送给用户手机
- 用户手机弹出通知
注册包名
只有注册被墙,日常接受消息可以裸连。 开自启、开通知权限、开全局代理(确保代理play服务和该app)(新版 V2rayNG 把路由设置中最终代理拉到最上面),然后打开 app 刷几分钟,以及让朋友或小号给你发消息。 在 fcm diagnostics 里 查看有无 app 的包名,如有则是注册成功了。
试收消息
关闭app后台,让朋友或小号发送私信。 若直接弹出通知则跳过之后的所有步骤,请享受苹果级推送。 若没弹出通知,则继续观察 fcm diagnostics:
在 EVENTS
中检索重要的字段:
字段 | 意义 |
---|---|
Received ~ | 包名成功注册 |
No respnse to broadcast ~ | 谷歌服务器没能把这条推送发送到手机 |
acked ~ | 表示发来的数据已确认接收无误 |
Successfull broadcast to ~ | 推送给用户的手机 |
Failed to broadcast to stopped app ~ | app自启动没开,不开自启动fcm会认为你不想收到消息 |
没找到 Received
不要紧,有包名就代表注册了。 有 Successfull broadcast to
但是 没有通知。合理,玄学,无解。
总结
开自启 开通知权限 开全局代理打开app 试收消息 收不到寄
总结
好像什么都没讲