未运行的 app 是如何做到推送消息的?
一个资讯 app,没有运行(包括后台进程,是如何做到推送消息的?好神奇
一个资讯 app,没有运行(包括后台进程,是如何做到推送消息的?好神奇
现在都是系统自带推送程序,你调用它的 API 就可以做到,看起来是 APP 发出来的,其实是系统发出来的
比如小米手机,,,你是程序开发者,去小米官方注册一个推送消息的 ID,然后把这个 ID 写到你的程序里,你的程序被用户安装后,小米主动或被动的方式通知你的服务器“有一个新用户安装了你的 APP,它的唯一 ID 是 XXXXXX”,然后你在你的服务器,通过小米的 API,也许是 HTTP 协议,也许是其他协议,发送一个请求给小米的服务器,服务器再根据用户 ID 推送到指定的用户,然后被推送的消息,就会呈现在用户的手机上了。。。。
被推送的消息很容易让用户以为是 APP 运行过程中调用了系统 API 来推送消息,其实全程不需要 APP 在用户手机上运行,只要安装就可以了。
以上只是我根据自己使用手机,猜测的逻辑,具体各厂商的逻辑,我不清楚,完全没去了解这一块。。。也许需要用户至少打开过一次 APP,也许根本不需要,具体的限制就要去看文档了。。。。。。
还有一种就是上说的,互相唤起对方的 APP,然后发推送消息,然后自己退出。这种方式超级低效,用户手机性能影响大。。
我是做 android 开发的。一般 android app 会同时集成好几家推送服务,比如 友盟推送.极光推送.小米推送 .华为推送.魅族推送.ov 推送。
1.app 打开状态,走的是第三方推送,比如友盟推送
2.app 杀死了或者 app 未启动状态,走厂商通道推送。小米手机走小米推送,华为手机走华为推送。
厂商推送服务是集成在系统中一直在运行状态的。app 未运行时,后台把推送信息发给厂商推送服务器,厂商再把推送信息推送给安装了 app 的手机上。厂商推送服务跟 app 是否运行没关系,系统级别的。app 运不运行,系统推送服务就在那里一直默默活着,除非你手机关机。
兄弟,你多久没做推送了,友盟推送已经包含了华为小米 ov 的推送了….