业务场景是从A页面到B页面,B页面到C页面,C页面中使用iframe
标签,然后在嵌套的第三方页面中完成操作后第三方使用window.location.href
返回B页面。
我这里的A页面其实是小程序,小程序通过
webView
标签访问B页面。
遇到的坑:当C页面返回到B页面时,要求点击触发回退时,返回到A页面。但实际效果是触发回退事件后,返回的是C页面中
iframe
嵌套的页面,而不是A页面。
一直的思路是当C页面回到B页面后,清空路由栈,或者重定向页面,因为当没有路由记录后,回退就不会到在到iframe
中展示的页面。
因为一直不成功
beforeRouteEnter
前置守卫,
window.addEventListener('popstate',function(e){})
监听回退事件,window.addEventListener('hashchange', function (event){})
监听路由变化,
window.history.pushState()
修改历史记录,
都尝试过了,全部无效。
小程序实现办法(关闭webview,返回到小程序)
引入微信的js-sdk
npm install weixin-js-sdk -save
触发方法
sdk参考微信文档:微信开放文档
beforeRouteEnter(to, from, next) {
next((vm) => {