欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序阻止小程序返回的兩種方法

 更新時(shí)間:2023年04月23日 10:48:34   作者:胖子liu  
這篇文章主要給大家介紹了關(guān)于微信小程序阻止小程序返回的兩種方法,分別是通過wx.enableAlertBeforeUnload和page-container,兩種方法都給出了詳細(xì)的實(shí)例,需要的朋友可以參考下

本次項(xiàng)目為uniapp開發(fā),原生小程序也可以參考這兩個(gè)方法。

方法1:

wx.enableAlertBeforeUnload

onLoad中聲明

wx.enableAlertBeforeUnload({
	message: '請(qǐng)您填寫數(shù)據(jù)',
	success:()=>{}
})

優(yōu)點(diǎn):簡(jiǎn)單方便

缺點(diǎn):無法自定義樣式、按鈕文字及樣式

方法2:

page-container

這是一個(gè)類似彈框的組件,具體參數(shù)可以去官網(wǎng)查看。

返回操作包括:頂部導(dǎo)航、右滑手勢(shì)、安卓物理返回鍵和調(diào)用 navigateBack 接口

優(yōu)點(diǎn):可以自定義返回框

<template>
<view>
	<text>測(cè)試阻止返回的頁面</text>
	<!-- 阻止返回 -->
	//注意一定要用v-if 才可以,不然即使showPage1設(shè)置為false,第二次也會(huì)直接返回
	<view class="" v-if="showPage1">
		<page-container :show="showPage1" :overlay="false"  @beforeleave="beforeleave('showPage1')"></page-container>
	</view>
</view>
</template>
//數(shù)據(jù)及方法
data(){
	return {
		showPage1: true   //一開始設(shè)置為顯示
	}
},
methods: {
	beforeleave(){
		this.showPage1 = false  //這個(gè)很重要,一定要先把彈框刪除掉
		uni.showModal({
			title: `確定要退出嗎`,
			success: (e)=>{
				if(e.confirm) {
				//判斷是上一個(gè)頁面進(jìn)入(返回),還是直接進(jìn)入這個(gè)頁面(回首頁)
					let pages = getCurrentPages()
					if(pages.length == 1){
						uni.switchTab({
							url: '/pages/index/index'
						})
					}else {
						uni.navigateBack(1)
					}
				}else {
					//點(diǎn)取消,生成新的彈框
					this.showPage1 = true
				}
			},
		})
	}
}

后語:對(duì)于page-container原理的個(gè)人理解

網(wǎng)上、官網(wǎng)上很多人只提到了這種方法可以解決阻止返回問題,卻沒有很好的說明,導(dǎo)致很多朋友在使用時(shí)并沒有達(dá)到預(yù)期效果。下面這個(gè)簡(jiǎn)單理解希望可以幫助到大家。

可以簡(jiǎn)單理解為在頁面生成page-container時(shí)會(huì)通知小程序需要監(jiān)聽用戶返回操作,并且阻止返回一次。

當(dāng)用戶做了返回操作后,小程序執(zhí)行了阻止返回,然后移除了監(jiān)聽,所以接著再做一次返回操作就直接返回了。

所以要達(dá)到不點(diǎn)擊確定返回,下一次做返回操作時(shí)依舊要阻止,就可以在每次返回點(diǎn)取消時(shí)候,移除page-container,再重新生成一個(gè)page-container,這時(shí)就又會(huì)重新通知小程序監(jiān)聽返回一次,所以上文用的是v-if。

總結(jié)

到此這篇關(guān)于微信小程序阻止小程序返回的兩種方法的文章就介紹到這了,更多相關(guān)阻止小程序返回內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論