uniapp 小程序 嵌套 webview 返回需要点击两次
uniapp 小程序 嵌套 webview 返回需要点击两次[*]先 上图
https://i-blog.csdnimg.cn/direct/53c85217ae4549eb9002afff8b445021.png
[*]小程序也监听不到 返回事件
[*]在网上找了一圈 都没有理想的答案,猜测 是由于嵌入的页面中有标题
[*]果然
小程序中嵌入的代码
<view>
<web-view :src="urlSrc" ></web-view>
</view>
export default {
data() {
return {
urlSrc: "",
}
},
onLoad(options) {
// 这里是要嵌入的页面路径
this.urlSrc = getApp().globalData.webViewUrl + "/#/viewsEdit?key=" + options.id+"&token="+options.token
},
}
嵌入项目 app.vue
由于我需要在该项目中先登录,再跳转到 /viewsEdit 页面 所以需要再app.vue中做默认登陆操作,然后再跳转到 /viewsEdit
<template>
<div id="app">
<RouterView />
</div>
</template>
<script>
export default {
created() {
// 有发送就有接收,与postMessage配套使用的就是message事件
let that = this
window.onload = function () {
let datas = that.getUrlParams(window.location.href)
localStorage.setItem('token', datas.token)
// 登录成功后路由跳回
// 重点
// 重点
// 重点
// 此处一定要使用replace替换掉 路由栈中的记录
// 不然 路由栈中会存在['/','/viewsEdit'] 两个记录所以需要点两次才能退出
// 使用 replace 后 路由栈中就剩了 ['/viewsEdit']
// this.$router.push({
//path: '/viewsEdit',
//query: {
// key: datas.key,
// }
// })
this.$router.replace({
path: '/viewsEdit',
query: {
key: datas.key,
}
})
}
},
methods: {
getUrlParams(url) {
const params = {}
const reg = /([^?&=]+)=([^&]*)/g
url.replace(reg, (match, key, value) => {
params = decodeURIComponent(value)
})
return params
}
}
}
</script>
[*]搞定 , 日常记录!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]