同一个 Wi-Fi 下微信有可能串号吗? 问题补充说明: 最近 iPad 的小号微信经常收到不明信息提示但是打开了什么也没有,一开始以为是陌生人串号了但是也没办法解决。后来偶然发现这些信息是另一个家人的微信里收到的,也试过从自己手机发微信给这位家人,结果 iPad 的微信收到了提示。这到底是什么情况? 现在只发现了 iphone 跟 ipad 之间串号了。如果哪天有其他人用苹果的产品连接上我家 Wi-Fi,也会出现串号现象吗? 程希冀,边做边学CTO 这种情况应该是因为苹果产品上曾经登陆过另外一个微信。因为某种原因,绑定的苹果推送没有正常的解除绑定。苹果的推送服务是单独的服务,和微信没有关系。也和串号没有关系。 然而,虽然这种绑定导致了苹果产品中出现了原先登陆的微信的消息,但是微信打开这条消息时,会发现该消息 id 不属于自己。于是微信无权读取该消息,也不会显示它。 为了行外人士能理解,我稍微展开说下。 我们可以这么理解苹果推送服务和苹果 App 的关系: 苹果推送服务是一个独立的第三方服务,帮助苹果的 App 推送消息; 推送完的消息在屏幕上以 App 的名义显示,例如“微信 xx:我爱你~!”这条推送,虽然图标和文字显示似乎是微信在推送,其实是苹果的推送服务。 微信请求苹果推送服务帮忙推送这条消息。 OK,如果你可以理解他们的关系。那么就好说了: 苹果推送服务是第三方程序,它完全不了解微信这个 app,别说你的聊天内容,它连你发的推送“是一条聊天”都不知道。它就是一个搬运工,相当于电脑里复制粘贴,电脑不关心、也不知道你复制粘贴了什么东西。 为什么微信不自己推送?苹果公司不允许,为了防止恶意推送造成用户体验降低。ok,所以所有需要推送的 app,例如微信,就申请苹果公司的推送服务帮它推送。刚才说了,苹果推送服务的程序只是复制粘贴,微信申请的时候,只需要告诉它,你把代号 xxx 的消息发送到代号 yyy 的设备,就 ok 了。 问题来了!有时候你卸载了微信,清除了微信的数据。注意:卸载程序时,程序是不允许任何反抗的。你记不记得电脑里那些流氓软件,卸载的时候各种矫情不让卸?所以,为了保护用户卸载软件的权利,手机端都是不通知 app 直接删文件的。所以,微信不知道自己被卸载了。 问题来了!它不知道自己被卸载了,所以它无法通知微信服务器,服务器也不知道。 问题来了!因为谁都不知道,所以苹果推送服务器也不知道!! 所以它该怎么推送还怎么推送。 你会说,不对啊,微信都没了它还怎么推? 是啊,所以此时,虽然它在推送,但苹果手机(平板)收到之后,会奇怪,这是什么玩意,我根本没有这 app 啊。 所以,它不会显示。 你看到这里肯定忍不住了:这不是根本没回答问题么,这不是正好么,这不是很正常么? 问题来了!用户并没有就此打住,而是后来又重新安装了微信,且安装前清除了数据。(比如它手工清理了系统,或者重装了系统)。 此时,新安装的微信对老的用户的信息一无所知。它以为这是它第一次被安装,并且正常地绑定了新的微信账户到苹果推送服务上。 你发现了什么?从头至尾,没有人取消原来账户和苹果推送服务的绑定。 你会觉得不科学,为什么微信不取消绑定呢? 分析一下刚才的内容你就知道了,这无法实现。因为微信无法知道自己被卸载,所以微信没有机会、没有时间去发送这个解除绑定的信号。 但是,如果你不卸载微信,而是退出微信账号,微信一定会帮你解除绑定的。 以上。 查看知乎原文