本
文
摘
要
一、为什么微信消息会不提醒
首先,如果你是 Android 手机,且自己没有乱用一些禁止后台运行的工具,基本不太会碰到这种问题。
因为 Android 手机有两个和 iOS 的不同:
1、Android 的通知是应用自己维护的,至于微信是用的某些服务还是自己搞的,就不确定的,我觉得 99.9% 是自己搞的,因为没有必要给第三方花钱(有知道内情的可以评论或私聊告知)
2、各大手机厂商对类似微信这样的 App,因为关联到用户体验,会给到最高一级的第三方 App 可以拿到的权限,所以消息及时性是手机厂商和微信共同保障的
而在 iOS 上就不是这么回事。
iOS 的后台是严格限制的,比如你在播放音乐、视频或需要导航等几个场景下,才可以后台,不然是会被系统从后台冻结的。
所以 iPhone 的微信不在前台时,通知就不是微信自己维护的。
而是来自于苹果的推送通知,所有的 App 都是(这里我们不说本地 Push,这种不经过苹果服务器,但聊天消息并不是本地的)。
这个流程是先发给苹果的服务器,苹果的服务器再发给对应的设备。
真感兴趣也可以参考官方文档,比如:
User Notifications | Apple Developer Documentation
微信是苹果的全球重要合作伙伴之一,我估计大概率苹果还是给微信有一些特殊的地方以保障消息的及时性。
但因为苹果的机制,仍然会出现一些可能导致收不到的点,因此我们分两部分来说。
第一部分是理论合理可能潜在有问题的和如何解决。
第二部分是玄学的,来自有人号称可以成功的,供你死马当活马医。
二、理论的问题点和 9 个尝试途径
因为就是 Push 的问题,所以至少有几部分你是需要先检查的。
1、通知是不是被关了
进入「设置」→「通知」→「微信」
确认下面的「允许通知」是打开的,下面几个样式自己看文字就可以知道意思,该打开就打开。
虽然我估计你大概率看过,但有时候有的人真的是这么简单的原因。
比如习惯不想接受通知,所以微信打开的时候询问是否通知,可能顺手就关了。
你也可以把通知先关掉,再打开下,iOS 系统毕竟是人写的,也许有一些 Bug ,关掉重新打开,如果之前状态记错了,重新打开应该会纠正一些状态。
2、是否开了「勿扰模式」、「睡眠模式」等
在「控制中心」中看看自己是否开了这些模式,这种打开后基本都会屏蔽消息,会出现收不到的情况。
同样,很有可能你也检查过了,但确实有人会忽略。
3、微信内的消息通知是否打开了
打开微信后,可以在「我」→「设置」→「消息通知」中找到,特别注意「微信未打开时」的开关开着。
理论上你不改设置,这里应该默认是开的状态。
这里的检查的时候,如果你发现已经是开的状态,可以关掉后返回,然后进来再打开下。
这个是避免微信有可能出现异常带来状态没记录正确带来收不到的可能性,虽然这种 Bug 发生概率不高,但还是有的。
4、是否登录了 PC 版微信且选择了手机静音
你用电脑登录了微信后,手机微信上面会有一条「xx 微信已登录」,点击这个进去会有类似下图的,确认显示「手机通知已开」,如果显示「手机通知已关」,请务必打开。
如果是开的状态,也可以关一下,再打开,修复潜在的系统状态异常。
5、微信自己提供的工具
打开微信,在「我」→「设置」→「帮助与反馈」→「右上角扳手图标 」→「修复消息通知」中进行修复。
这是微信来做的。
我估计大概率是重新向苹果服务器注册或更新你的设备和标记,以保障消息能正确发送给你。
6、删除其他登录设备
打开微信,在「我」→「设置」→「账号与安全」→「登录设备管理」,把你其他设备删了(以后需要登录回来)。
这个逻辑是也许是注册设备信息出错,或仍然错误的发给了你其他设备。
删除后,你当前设备最好也用下上面一条的修复,或者推出微信重新登录下。
7、退出微信账号重新登录
这个同样是为了让微信能把你的设备和你的账号关联起来,保证苹果服务器发给你的是正确的。
8、杀掉微信 App,重新打开
重启大法,大家都会。
有 Home 键的双击 Home 键,然后把微信结束掉。
全面屏的从最下朝上划然后松手,出现多任务界面,找到微信后,朝上滑结束掉微信。
9、重启手机
重启大法,纠正系统可能潜在的问题。
虽然 iOS 很稳定,但也是个理论合理的方法。
三、玄学的部分
1、打开后台刷新
在「设置」→「通用」→「后台刷新」中,找到微信,打开「后台刷新」。
这个理论上只能说有一点关系,但不应该是直接原因。
后台刷新其实更多用来让你在打开微信后,看到消息更及时,而不会影响你收到通知。
但因为是同一个 App 和苹果后台而连接行为,所以可能会存在更多让你和苹果服务器保持连接的能力。
如果这里是开的,也可以关一下再开,理论上是让系统刷新下开关状态。
2、修改通知模式
进入「设置」→「通知」→「微信」,有人把下面红框部分的「临时」改成「持续」,据说好了。
3、关闭 iMessage 和 FaceTime
这个理论上也没有直接相关性,更多相关性是在服务器对你的设备做标记的用途,但是有人号称这样成功了,走投无路可以试试。
关闭 iMessage,入口在「设置」→「信息」→「iMessage」,见下图红框,关闭
关闭 FaceTime ,入口在「设置」→「FaceTime 通话」→「FaceTime 通话」,关掉。见下图:
4、退出 AppleID 并重新登录 AppleID
在「设置」最顶部,点进去可以「退出登录」
这个和上面理论类似,还是重新和苹果服务器做身份确认,所以也许有点用。
如果你实验有效,请务必评论告知是那一条有效,因为这个对其他有同样困扰的人非常重要!
如果有用,也希望赞同支持下,因为这个问题太让人困扰了,解决了就让我一起开心下吧。
(完)