在开发小程序中,碰到使用web-view标签进入活动页,在返回时需要点击两次才能返回小程序,查了很多文档,通过验证找到了解决方法
1.出现原因
通过小程序社区以为也是加了#wechat_redirect导致
于是把参数去掉进行测试,发现还是要点击两次才能返回,猜测应该是链接里面别的重定向导致
2.解决方法
在百度上查找了很多相关的解决方法,但是测试都没生效,不过天无绝人之路,还是在一位大佬的博客中发现了解决方案。
思路:通过history.pushState添加历史记录名目,history.onpopstate监听历史记录条目发生变化时,调用小程序APIwx.navigateBack
history.pushState
话不多说,上代码
//需要在链接页面的js中添加history.pushState({page: 1}, null, window.location.href);//然后监听popstate事件window.addEventListener('popstate', (event) => {wx.miniProgram.navigateBack();});//注意1.如果链接页面的业务逻辑很多,建议放到所有业务逻辑处理完后执行上方代码,否则可能出现闪退2.不要放到监听页面结束的事件中比如onload,onunload,onbeforeunload,否则会不生效
仅供小白参考