苹果手机退出微信后收不到消息,怎么解决?

新手学堂014

苹果手机退出微信后收不到消息,怎么解决?,第1张

苹果手机微信退出后收不到消息提醒可能是因为你微信占用的内存太多了,手机的存储也不够了,所以微信不会在后台给你推送消息。

解决办法如下:

1、苹果手机“后台应用刷新”关闭造成的锁屏微信后台被清理。

解决办法:主菜单页,点击并打开“设置”;在“设置”中,找到并打开“通用”;打开“后台应用刷新”;“后台应用刷新”显示为“关闭”点击红框位置;打开“后台应用刷新”选择“WLAN与蜂窝移动网”即可完成;特别注意“后台应用刷新”打开后,返回上一级查看“微信”应用红框内的绿色按钮是否正常开启,如果未开启点亮即可。

2、苹果“通知”中“锁定屏幕”提醒被关闭。

解决办法:打开ios中的“设置”,找到“通知”选项;在“通知”页面中找到“微信”,点击进入;“提醒”栏下的锁定屏幕是关闭的,需要打开它就可以在锁屏状态收到通知消息;将“锁定屏幕”开启即可在锁屏状态下收到通知消息。

3、“微信”中“新消息通知”被关闭。

解决办法:打开“微信”点击屏幕下方红圈内“我”;选择并打开“设置”;找到并打开“新消息通知”;点击红框内“新消息通知”并打开,点亮按钮即可。

4、网络问题,网络信号差也有影响。

解决办法:关闭苹果手机的网络,重启后再试。

5、微信语音权限。

解决办法:要打开微信,然后点击微信页面下的我-设置,然后就可以看到新消息通知并打开,看到第一个接收新消息通知。如果是关闭的,我们需要在设置-通知下打开消息提醒。如果是打开设置-通知,在通知里找到微信,打开微信的允许通知,回到微信的新消息通知,就可以看到“接收新消息通知”会被打开。

之前的想法是通过webview的navigationDelegate的各个生命周期中,判断webview的canGoBack属性,但是有不少缺陷:

比如单页应用的跳转不会触发生命周期,如果在didFinishNavigation中判断canGoBack,这要等页面加载完成才会执行,有很大的延迟

下面是解决方案,其实很简单,就是通过kvo来监听canGoBack的变化:

根据微信的体验,微信的底部前进后退的状态判断也是根据监听canGoBack canGoForward来动态配置的

1:点击右上角的返回App按钮

点击此按钮,走的是正常微信结果回调方法,在onResp中,对于成功或者失败结果进行处理。小生愚笨,采取的是发送通知的方法,在订单支付控制器中接受通知,分别对成功失败的事件进行处理。

2:左上角返回App按钮

如果用户点击此按钮,程序回到支付订单页面,但此时不走微信的结果回调方法,那么此时如何拿到微信支付结果的通知呢?

推荐方法:点击返回App按钮,此时程序走的是在AppDelegate的applicationWillEnterForeground方法,只需要在这个方法里面验证付款的订单号是否已经支付完成。需要自己的后台给出一个接口,来验证此订单的支付结果。

步骤一:在提交订单或者确认订单的页面,将订单号或者订单id存起来(可使用NSUserDefaults),作为验证订单是否支付接口的参数。

步骤二:成功调起微信支付后,添加标识,区分是支付页面的返回事件。

步骤三:在AppDelegate的applicationWillEnterForeground方法里写判断订单是否已经支付,如果此订单已经支付,发送通知给订单支付的页面控制器,在订单支付页面进行相应的页面跳转。PS:最后记得清空NSUserDefaults中的数据。

注释:点击右上角返回App按钮,程序会先走applicationWillEnterForeground,中间会跳回到微信自己的onResp(结果回调方法)。为了避免在WillEnterForeground重复验证订单,可以在处理微信结果的方法中将NSUserDefaults存的订单信息和支付返回的数据清空,或者设置BOOL值来区分。(本文参考了作者paradisery的”iOS-90后跳支付左上角返回键解决办法“一文)。本文只是个人愚见,如果有任何问题,欢迎大家指正。

结论

出问题的设备开了 Charles 抓包并配置了 SSL 代理 关闭代理后重新安装并启动后正常

症状描述:

提测以后测试发现分享微信以后点击返回 APP 按钮没效果, 经过测试在开发设备上没有复现 检查测试机的系统版本和微信版本没有发现异常 而且在有时候测试设备的返回 APP 按钮正常工作

解决过程