bark 的通知几乎可以做到实时的,反而微信的通知偶尔出个延迟。
这是苹果的问题,还是微信的问题?
1 arron2022 165 天前 借楼说个困惑,就是有时候微信通知锁屏页面通知了也看到了,然后点进去看要等一会才加载出来,这是为啥 |
2 supercatdog 165 天前 @arron2022 iOS 吗? 通知是苹果服务器发你的(当然也是微信服务器调 API 叫苹果发送的),打开微信 App 是和微信服务器连接后收消息。 |
![]() | 3 rrubick 165 天前 微信的吧,消息发出后后端需要做一些操作,然后才会通过苹果服务器去推送。 |
4 supercatdog 165 天前 ![]() @arron2022 大概就是:B 发送消息给 A ,微信服务器发现 A 不在线,那就叫苹果发送通知给 A 的设备。苹果能马上找到 A 的设备,A 设备会很快收到通知消息。但是此时 A 设备的微信 App 的数据库里是没有这条消息的。因为微信 app 没有在前台,没有连接微信的服务器,无法收发消息。等你打开微信 app 后,会先去连接微信的服务器,连接有个过程,连接完成后收消息也有个过程,然后才在 app 里显示消息。 |
5 justOMG 165 天前 微信已经无感了,到现在我微信还会双重推送,关键还前后间隔几分钟 |
![]() | 6 zyxfsky 165 天前 我用 Bark 推送消息给手机、pad 、mac ,同一条消息,三个设备有时候几乎同一时间收到,有时候前后相差好几分钟,还有的时候部分设备收不到消息,不知道为啥 |
7 luffy2u 165 天前 苹果有时候还会有假微信通知,打开后没有新消息 |
![]() | 8 itskingname 165 天前 ![]() @arron2022 这就是 ios 和 android 通知机制的不同之处。 对于国产安卓来说,别人给你发一条微信消息。这条消息先到了你的手机上,然后安卓从消息里面拿到通知对应的内容,通知你。你点开通知,微信 app 直接加载刚才拿到的消息全文。 对于 ios ,别人发一条微信消息给你的时候,微信服务器会先调用 ios 的通知接口,把通知对应的内容发给苹果。苹果再给你发送推送。你收到推送,点开微信以后,微信 app 再连上自己的服务器拉取消息全文。所以会出现延迟。 |
9 arron2022 165 天前 @supercatdog #2 好的 感谢分析,对用户体验来说太糟糕了,一先一后还不如两个都同时后到。 |
10 arron2022 165 天前 @itskingname #8 我觉得安卓这种才更合理,就算通知延迟了也无感知,但是 ios 这种特么先让你看到点进去又要等一会,特别是一些要紧要回复的消息这样太搞心态了。 |
![]() | 11 kera0a 165 天前 via iPhone @itskingname 安卓是因为后台有一条微信的长链接,和通知无关。 iOS 也可以携带消息全文,并且 iOS 还提供 API 让你在通知显示之前,执行 app 的代码,可以从服务器拉取额外信息。 所以并不是因为通知差异导致的,根本原因是微信的长链接有没有建立。 |
12 liudewa 165 天前 @itskingname #8 ios 怎么做到 vx 和手机一一对应的呢,就是调用 ios 通知 api,通知 api 怎么知道要通知的对象是谁 |
13 supercatdog 165 天前 ![]() @liudewa 有设备令牌(DeviceToken),微信调用苹果通知 API 时把这个令牌给苹果,苹果就能找到这个设备了。微信在请求通知权限的时候会获取到这个设备的令牌。 |
14 supercatdog 165 天前 @kera0a 哈哈,1 楼会有这个疑问,所以可能不太了解这块的,所以就没有说 socket 之类的或者去说建立长连接之后能双方互相找到对方消息无阻。微信进入后台一段时间后,sokect 会断开,无法继续收发消息,只能靠通知。iOS 确实能在通知里携带挺多信息,然后在通知拓展中去获取更多或者做更多逻辑,但是微信似乎并没有去做,至于取舍是啥不清楚。表现就是微信点开通知后不会跳到对应的聊天窗口,只是单纯打开 app 。安卓似乎点击通知能跳到对应的聊天窗口。 |
![]() | 15 huig 165 天前 @arron2022 iOS 才是正规操作,国外有 google 统一推送,国内 android 的统一推送联盟没搞起来。现在 android 就各种后台保活用来通知,不过目前系统级做了推送通知,有多个手机系统就得接多个,有的第三方统一帮你封装好了。不过目前就我所知微信没有接入的,而是各个手机系统做了白名单,塞了粒老鼠屎。 |
![]() | 16 somebody1 165 天前 安卓也一样,经常电脑都回复了,手机过一会才通知 |
![]() | 17 kyor0 165 天前 微信的,这个问题你手动刷新一下推送就能解决。如果你的是 wechat 那延迟是很正常。国内微信正常推送延迟应该是 5s 以内 |
![]() | 18 reavid 165 天前 感觉是两方都有问题,看两个公司如何解决这件事情的。 苹果对于消息延迟给出了 “即时通知” 的解决方案,好不好用暂不得知,至少可以尝试看看。但微信一直不跟进有什么办法,只能说微信不重视用户呗。 |
![]() | 19 nagisavpn 165 天前 via iPhone @fangxisama 即时通知,这功能我到现在都没搞清楚,开不开都一样啊 |
20 julyclyde 165 天前 @itskingname 你的意思是,国产安卓不经过中心服务器转发就可以直接发到手机上吗? |
21 prosgtsr 165 天前 via iPhone 国产安卓是微信直接到手机 ios 是微信到苹果,苹果到手机 使用体验上来说国产安卓的好,但是方案上并不是国产安卓的方案好,这都是有代价的,代价就是微信一直在后台 |
![]() | 23 Rinndy 165 天前 via iPhone iOS 后台 app 刷新打开会好点,也有可能是微信垃圾。 |
24 feelm 163 天前 via Android iOS 的这个机制更繁杂,容易出 bug 和问题。安卓体验更好,但更耗电。 |