0.事件
接到线报,部分用户反馈无法填写收货地址,填写完成后返回订单页时,小程序会崩溃退出
1.测试
使用公司的测试机批量测试该情况,未能复现
2.线索
通过用户在微信聊天上的反馈,使用微信昵称到库中查user_id,通过user_id到日志中查用户IP,通过IP到nginx的Log中查UA,
查询到的UA如下:
Mozilla/5.0 (Linux; Android 4.4.4; OPPO R7s Build/KTU84P; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.143 Crosswalk/24.53.595.0 XWEB/155 MMWEBSDK/19 Mobile Safari/537.36 MicroMessenger/6.6.6.1300(0x26060638) NetType/WIFI Language/zh_CN MicroMessenger/6.6.6.1300(0x26060638) NetType/WIFI Language/zh_CN
Mozilla/5.0 (Linux; Android 4.4.4; OPPO R7s Build/KTU84P; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.143 Crosswalk/24.53.595.0 XWEB/155 MMWEBSDK/21 Mobile Safari/537.36 MicroMessenger/6.6.7.1320(0x26060739) NetType/WIFI Language/zh_CN MicroMessenger/6.6.7.1320(0x26060739) NetType/WIFI Language/zh_C
通过UA发现重要的相同变量为: 安卓版本:4.4.4,手机型号:OPPO R7s,Chrome版本:53.0.2785.143
不同变量为:微信版本: 6.6.6.1300 6.6.7.1320
说明跟微信版本没有多大关系.
ps: 需要注意的是有时候安装微信时Chrome版本是:33.0.0.0,这个版本不会出现问题
3.复现
公司没有该型号的测试机,然后到提供云真机的网站进行测试.
测试过程如下:
a.到微信官网下载安装包
b.安装,登录,打开小程序
c.根据日志中用户的操作步骤进行操作
的确像用户描述的那样,返回到下单页就崩溃了
4.查找原因并修复
步入测试,跳转回下单页时,就直接崩溃了,安卓log显示是内存耗尽
想了半天,突然发现打开的页面正好是第六个,也就是说页面只能同时打开5个,于是修改代码,在跳转时使用重定向跳转(wx.redirectTo),保持页面层级不超过4个就没问题了
5.具体的原因尚不得知,如果有大佬知道,麻烦指点一下;