我的场景:a、小程序首页-》b、h5活动列表-》c、小程序活动详情
c返回b b无法刷新
网上说了好多办法试过了都不行 求解啊
比如
1、先清空URL在赋值
<web-view wx:if="{{url}}" src="{{url}}" bindmessage="onMessage"></web-view>
this.setData({
url: "",
});
setTimeout(() => {
this.setData({
url: tmpUrl,
});
}, 400);
这个方法无效
2、 加时间戳
在b页面onshow的时候给URL地址拼接时间戳 是刷新了但是也增加了h5的页面栈 这样根本不符合要求
解决了!!!再加一个变量其他不变
<web-view wx:if="{{url && show}}" src="{{url}}" bindmessage="onMessage"></web-view> onHide() { this.setData({ show: false, }); }, onShow() { this.setData({ show: true, }); }
有一个曲线的解决方案:
1.在webview页面注册监听一个全局事件;
2.你在上一级页面做完相应的操作后进行触发全局事件;
3.监听到全局事件后进行redirectTo来防止增加页面栈;
4.记得离开webview页面时移除全局事件;