核心就是用 page-container这个组件
<template><!-- #ifdef MP-WEIXIN --><!-- 微信小程序使用page-container方式拦截返回 --><page-container:show="showPageContainer":duration="false":overlay="false"@beforeleave="beforeBack"></page-container><!-- #endif -->
</template><script>
export default {props: {content: {type: String,default: '确定返回吗?'},title: {type: String,default: '系统提示?'}},data() {return {showPageContainer: true,quitFlag: true}},created() {// #ifndef MP-WEIXINuni.addInterceptor('navigateBack', {invoke: () => {if (this.quitFlag) {uni.showModal({title: this.title,content: this.content,showCancel: true,success: ({ confirm }) => {if (confirm) {this.quitFlag = falsethis.$emit('backConfirm')uni.navigateBack({ delta: 1 })return false} else {this.$emit('backCancel')}}})return false}},complete: () => {// 删除拦截器uni.removeInterceptor('navigateBack')}})// #endif},methods: {beforeBack() {this.showPageContainer = false // 必须先隐藏page-containeruni.showModal({title: this.title,content: this.content,showCancel: true,success: ({ confirm }) => {if (confirm) {this.$emit('backConfirm')uni.navigateBack({ delta: 1 })} else {this.$emit('backCancel')this.showPageContainer = true}}})}}
}
</script><style></style>