微信小程序阻止小程序返回的兩種方法
本次項目為uniapp開發(fā),原生小程序也可以參考這兩個方法。
方法1:
wx.enableAlertBeforeUnload
onLoad中聲明
wx.enableAlertBeforeUnload({ message: '請您填寫數(shù)據(jù)', success:()=>{} })
優(yōu)點:簡單方便
缺點:無法自定義樣式、按鈕文字及樣式
方法2:
page-container
這是一個類似彈框的組件,具體參數(shù)可以去官網(wǎng)查看。
返回操作包括:頂部導(dǎo)航、右滑手勢、安卓物理返回鍵和調(diào)用 navigateBack 接口
優(yōu)點:可以自定義返回框
<template> <view> <text>測試阻止返回的頁面</text> <!-- 阻止返回 --> //注意一定要用v-if 才可以,不然即使showPage1設(shè)置為false,第二次也會直接返回 <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 //這個很重要,一定要先把彈框刪除掉 uni.showModal({ title: `確定要退出嗎`, success: (e)=>{ if(e.confirm) { //判斷是上一個頁面進(jìn)入(返回),還是直接進(jìn)入這個頁面(回首頁) let pages = getCurrentPages() if(pages.length == 1){ uni.switchTab({ url: '/pages/index/index' }) }else { uni.navigateBack(1) } }else { //點取消,生成新的彈框 this.showPage1 = true } }, }) } }
后語:對于page-container原理的個人理解
網(wǎng)上、官網(wǎng)上很多人只提到了這種方法可以解決阻止返回問題,卻沒有很好的說明,導(dǎo)致很多朋友在使用時并沒有達(dá)到預(yù)期效果。下面這個簡單理解希望可以幫助到大家。
可以簡單理解為在頁面生成page-container時會通知小程序需要監(jiān)聽用戶返回操作,并且阻止返回一次。
當(dāng)用戶做了返回操作后,小程序執(zhí)行了阻止返回,然后移除了監(jiān)聽,所以接著再做一次返回操作就直接返回了。
所以要達(dá)到不點擊確定返回,下一次做返回操作時依舊要阻止,就可以在每次返回點取消時候,移除page-container,再重新生成一個page-container,這時就又會重新通知小程序監(jiān)聽返回一次,所以上文用的是v-if。
總結(jié)
到此這篇關(guān)于微信小程序阻止小程序返回的兩種方法的文章就介紹到這了,更多相關(guān)阻止小程序返回內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的區(qū)別和應(yīng)用場景簡述
隨著web2.0的彪悍發(fā)展,以及瀏覽器端所承載的工作越來越大(在不是很影響性能的情況下,開發(fā)者都習(xí)慣把能用瀏覽器做的事兒都讓瀏覽器做,以減輕服務(wù)器的壓力和帶寬費用等)。2010-04-04微信JS-SDK實現(xiàn)微信會員卡功能(給用戶微信卡包里發(fā)送會員卡)
這篇文章主要介紹了微信JS-SDK實現(xiàn)微信會員卡功能(給用戶微信卡包里發(fā)送會員卡),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07JavaScript 變量,數(shù)據(jù)類型基礎(chǔ)實例詳解【變量、字符串、數(shù)組、對象等】
這篇文章主要介紹了JavaScript 變量,數(shù)據(jù)類型基礎(chǔ),結(jié)合實例形式詳細(xì)分析了JavaScript變量聲明、字符串、數(shù)組、對象等基本使用方法與操作注意事項,需要的朋友可以參考下2020-01-01使用腳本控制網(wǎng)頁Table的顯示隱藏(全代碼)_AX
使用腳本控制網(wǎng)頁Table的顯示隱藏(全代碼)_AX...2006-12-12前端處理二進(jìn)制流文件導(dǎo)出為excel表代碼示例
這篇文章主要給大家介紹了關(guān)于前端處理二進(jìn)制流文件導(dǎo)出為excel表的相關(guān)資料,后臺管理系統(tǒng),常會出現(xiàn)導(dǎo)出excel表格功能,需要的朋友可以參考下2023-08-08