uniapp默认左滑是关闭整个webview,而不是关闭当前页 实现思路:拦截webview的url跳转操作,将新url用webview组件重新打开,当左滑的时候,默认关闭的就是当前webview,继而跳转到上一次的页面中
<template>
<view>
<web-view :src="weburl" :update-title="false" :webview-styles="webviewStyles">
</web-view>
</view>
</template>
<script>
export default {
data() {
return {
// 进度条
webviewStyles: {
progress: {
color: '#FF3333'
}
},
weburl: ""
};
},
onLoad(option) {
console.log("接收到的url参数是:", option.weburl); //打印出上个页面传递的参数。
this.weburl = option.weburl
},
onReady() {
var pages = getCurrentPages();
var page = pages[pages.length - 1];
var currentWebview = page.$getAppWebview();
var url = currentWebview.children()[0].getURL();
console.log('=== url ===', url);
var wv = currentWebview.children()[0];
wv.overrideUrlLoading({
mode: 'reject',
match: '.*'
}, function(e) {
console.log('reject url: ' + e.url);
uni.navigateTo({
url: `/pages/webbox/webbox?weburl=${e.url}`
})
});
},
onBackPress(e) {
let pages = getCurrentPages()
let page = pages[pages.length - 1];
let currentPages = page.$getAppWebview()
currentPages.close()
return false
},
onNavigationBarButtonTap() {
console.log("点击了标题栏按钮")
uni.$emit("showMenu")
},
methods: {}
}
</script>
<style lang="scss">
</style>
本文含有隐藏内容,请 开通VIP 后查看