- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
小程序逻辑:
1、用户请求后台登录后 ret.header["Set-Cookie"] != undefined && wx.setStorageSync("cookie", ret.header["Set-Cookie"]); 将后台返回的 COOKIE使用wx.setStorageSync保存到本地。
2、用户每次请求后台时
var cookie = wx.getStorageSync("cookie");
if( url != 'login' && !isNull( cookie ) ){
header['cookie'] = cookie;
}
使用 wx.getStorageSync 取出 cookie值放到 wx.request 的header内
使用上面方式模拟浏览器COOKIE机制来实现 session功能
用户一直开着小程序操作没有任何问题,一切正常。
问题:假如用户在使用过程中将微信切至后台查看其他APP时再重新回到小程序内某一页面,页面在onShow内触发数据更新功能请求后台,此时var cookie = wx.getStorageSync("cookie"); 的cookie值为空。
看看是否哪里置空或者删除了该字段
微信切到后台然后再重新打开微信整个页面只会触发 onShow逻辑。 onShow逻辑只有一个就是请求后如数据更新页面。
没有任何删除或清空cookie的操作, 如果有这些操作正常情况肯定也会有同样问题, 在小程序页面按HOME键后再切回微信取wx.getStorageSync("cookie");值为空。
麻烦提供一下代码片段看看(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
找到问题所在了 我们的问题, 在app.js 的 onshow内有个 clearStorageSync