Files
2026-01-15 17:18:24 +08:00

72 lines
1.6 KiB
Vue

<template>
<view class="container">
<web-view v-if="src" :src="src" bindmessage="handleGetMessage"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
src: '' // WebView URL
}
},
// 页面加载
onLoad(e) {
let url = e.url || ''
try {
url = decodeURIComponent(url)
} catch (err) {
console.warn('decode error', url)
}
console.log("签署链接:" + url)
// 强制刷新 WebView
this.src = ''
this.$nextTick(() => {
this.src = url
console.log('webview src set:', this.src)
})
},
methods: {
/**
* 刷脸完成后重新加载页面
*/
reloadPage(redirectUrl) {
console.log('---webview reloadPage', redirectUrl)
this.src = redirectUrl || this.src
},
/**
* 消息通知回调处理
* H5 / App / 小程序都可以调用
*/
handleGetMessage(e) {
console.log('handleGetMessage', e)
const data = e.detail?.data?.[0]
if (data && data.result === 'success') {
// 跳转中转页
// #ifdef MP-WEIXIN
wx.navigateBack()
// #endif
// #ifdef H5
if (window.history.length > 1) {
window.history.go(-delta)
} else {
// 没有上一页就跳首页
this.$router.replace('/')
}
return
// #endif
// #ifdef APP-PLUS
// 这里根据你 APP 路由跳转方法
// plus.webview.open('/redirect/bizpage')
// #endif
}
}
}
}
</script>