未运行的 app 是如何做到推送消息的?

2020-08-27 08:02:29 +08:00
 cantonadong

一个资讯 app,没有运行(包括后台进程,是如何做到推送消息的?好神奇

14110 次点击
所在节点    Android
35 条回复
SakuraOjosama
2020-08-27 08:08:32 +08:00
统一推送或者。。。小米推送?
werls
2020-08-27 08:10:52 +08:00
系统推送啊,苹果和 Google 玩了好几年了
yufeng0681
2020-08-27 08:43:31 +08:00
一种情况是:走中国几家统一了的推送功能;
一种情况是:后台自己启动(被人拉起来),然后主动获取通知消息,然后在后台自杀
belin520
2020-08-27 08:47:35 +08:00
@yufeng0681 楼上正解
wanwaneryide
2020-08-27 08:58:04 +08:00
感觉你在钓鱼
cdlnls
2020-08-27 09:01:24 +08:00
系统级别的推送啊,简单说就是 APP 后端直接给手机厂家的推送服务器发送消息,然后手机厂家再转发给手机。
如果 APP 是在运行中,就可以直接发给手机 APP 。
HarryQu
2020-08-27 09:19:34 +08:00
使用手机厂商的推送:
iOS:APNs 。
安卓:各大手机厂商各有一套推送的 SDK,例如小米推送 SDK 、华为 推送 SDK 、OPPO 、VIVO 推送 SDK 。
whywhywhy
2020-08-27 09:20:30 +08:00
以前我也不能理解,认为消息要自己的 APP 发出来。

现在都是系统自带推送程序,你调用它的 API 就可以做到,看起来是 APP 发出来的,其实是系统发出来的
feidao158
2020-08-27 09:23:50 +08:00
@whywhywhy 调用 api 需要代码程序,代码程序需要运行,看题主问题 没有运行的 app
fuchunliu
2020-08-27 09:27:28 +08:00
@yufeng0681 好不容易都爬起来了还会自杀?有这么良心?
zhuawadao
2020-08-27 09:29:10 +08:00
借楼问:抖音如何在安装之后不打开的情况下,直接就有一个角标(无耻)
dddd1919
2020-08-27 09:29:19 +08:00
这种问题直接问百度就好了
ochatokori
2020-08-27 09:32:13 +08:00
@fuchunliu #10 因为有不少 app 在后台也没事干,没必要占着后台被人骂毒瘤,只有微信不知道搞什么飞机要在后台占 1G 内存
当然也不排除是系统资源紧张,应用被唤醒后就被系统杀了
whywhywhy
2020-08-27 09:38:52 +08:00
@feidao158
我不是很清楚安卓苹果具体的实现,但是其实楼上已经说得很清楚了。。

比如小米手机,,,你是程序开发者,去小米官方注册一个推送消息的 ID,然后把这个 ID 写到你的程序里,你的程序被用户安装后,小米主动或被动的方式通知你的服务器“有一个新用户安装了你的 APP,它的唯一 ID 是 XXXXXX”,然后你在你的服务器,通过小米的 API,也许是 HTTP 协议,也许是其他协议,发送一个请求给小米的服务器,服务器再根据用户 ID 推送到指定的用户,然后被推送的消息,就会呈现在用户的手机上了。。。。

被推送的消息很容易让用户以为是 APP 运行过程中调用了系统 API 来推送消息,其实全程不需要 APP 在用户手机上运行,只要安装就可以了。


以上只是我根据自己使用手机,猜测的逻辑,具体各厂商的逻辑,我不清楚,完全没去了解这一块。。。也许需要用户至少打开过一次 APP,也许根本不需要,具体的限制就要去看文档了。。。。。。

还有一种就是楼上说的,互相唤起对方的 APP,然后发推送消息,然后自己退出。这种方式超级低效,用户手机性能影响大。。
fffang
2020-08-27 09:39:43 +08:00
@zhuawadao 抖音后台通过苹果接口 告诉这台设备的这个 app 要显示一个角标
zhuawadao
2020-08-27 09:43:28 +08:00
@fffang 安卓上的,也是统一推送做的?安装的的时候通过应用市场做的接口调用吗,辛苦答疑!
Baymaxbowen
2020-08-27 09:46:12 +08:00
@zhuawadao #16 手机厂商的推送,和应用市场无关
iFlicker
2020-08-27 09:47:54 +08:00
iOS: apns
Android:国外是 fcm 国内是各个系统的推送 sdk
Tink
2020-08-27 09:48:13 +08:00
统一推送联盟啊
whatyousay
2020-08-27 09:48:58 +08:00
安卓的唤醒后推送是备用手段?要不然为啥要那么多互相唤醒?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701767

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX