[日常吐槽] 微信的消息推送机制
James Swineson
已而!已而!
关于公众号
公众号的消息分为两类:一般和高优先级。
- 高优先级的会强制给通知栏通知,包括使用 GCM;
- 一般优先级的话如果是服务号会通过自己的推送服务推送,但是不走 GCM。
关于自己的推送服务
如果被 pm disable,那么
- 在第一次打开微信时它会连接服务器读取消息并且按时间顺序慢慢把所有记录下载到本地
- 这个过程 UI 上没有任何提示,消息较多时可能会误以为无消息
- 一段时间后 Pushbullet 能读取到这些消息对应的通知栏通知,然而实际上通知栏并不能看到东西
这个 feature 在我用 iOS 并且加了个一天聊天记录 1W+ 的微信群时逼我换了 Android。
关于电脑版
- 两点登录的时候,其中一处收到消息,并不代表另一处也收到消息
- 所有的消息,即使电脑上已读,手机上仍然会再提醒(通知栏)一次
- 所有的语音消息,即使电脑上已读,手机上仍然会有红点
- 聊天记录时间错乱常有
我要的是 seamless 的多终端登录体验,不是每个地方都乱弹消息或者没有消息,不是一条消息提示三遍(电脑,手机,手环),不是每次登录电脑端还要摸出手机扫个码,更不是每次把屏幕合上就要重新摸出手机扫个码!!!
不说脏话。不想说。