午休醒了 看到测试提的BUG,突然想记录一下解决BUG的经过。

背景

需求:微信小程序,一个图片列表有已读未读的状态,在点击图片进入详情页面前,需要调用/read接口通知服务端已读状态。这里从详情页面返回时会通知页面刷新列表,更新已读状态。

现象:在本地开发中表现正常。但是在测试的手机上出现了问题。进入详情后返回列表页查看,该图片还是未读状态。但是在杀掉小程序后,再次进入图片列表则展示了已读状态。

解决思路

首先想到的是添加日志

1、添加日志,查看/read接口是否调用成功了。
2、添加日志,查看小程序页面间通知是否成功了。

在添加日志的过程中发现有个API请求多余了(已读状态的图片点击后仍然调用了/read接口),顺手改掉了。

加上日志以后 在真机测试发现接口都调用了,在第2步出现了问题。
如果用户是点击返回按钮,那么会发送通知成功刷新列表。
如果用户是手势返回的,那么这个通知就没有触发。

3、于是开始想微信小程序怎么拦截手势返回动作。查了文档发现不支持。于是开始想别的办法。
4、突然想到在生命周期onShow里去调用接口呢?每次显示页面的时候调用。确实可行。
5、自测了一会儿后,解决了该问题。