一:wx.navigateTo5個(gè)頁面的打開限制
問題說明:有一個(gè)小程序包含 A、B、C、D 四個(gè)頁面,A 頁面為首頁。小程序啟動(dòng)后,在 A 頁面中,我們通過 navigateTo 跳轉(zhuǎn)到 B 頁面,然后在 B 頁面中再通過 navigateTo 跳轉(zhuǎn)到 C 頁面。
此時(shí)頁面棧中就會(huì)包含三個(gè)元素,分別為 A、B、C 三個(gè)頁面。而此時(shí)如果通過 redirectTo 跳轉(zhuǎn)到 D 頁面,redirectTo 會(huì)將當(dāng)前頁面出棧,即將 C 頁面出棧,再將 D 頁面入棧,這時(shí)候,頁面棧中的元素則會(huì)變?yōu)?A、B、D。
此時(shí)如果在 D 頁面調(diào)用 navigateBack,會(huì)發(fā)現(xiàn)不是返回 C 頁面,而是返回到了 B 頁面。因?yàn)?navigateBack 將棧中最后一個(gè)元素(D 頁面)出棧后,頁面棧的內(nèi)容則變?yōu)?A、B。頁面棧最后一個(gè)元素為 B 頁面,即當(dāng)前顯示的會(huì)是 B 頁面。
而上述「頁面路徑」限制為五層,其實(shí)就是規(guī)定了頁面棧中的元素不能超過五個(gè)。頁面棧中元素達(dá)到五個(gè)后,就不能增加了。
知乎回答(石橋碼農(nóng)):
微信小程序中的頁面導(dǎo)航 API 有三個(gè),兩個(gè)跳轉(zhuǎn)新頁面的 API 分別為 wx.navigateTo 和 wx.redirectTo,還有一個(gè) API 名為 wx.navigateBack,它用于返回頁面。碼農(nóng)于此處給出一個(gè)理論方案:1,每次跳轉(zhuǎn)都使用redirectTo,并且只在js中使用。在wxml中使用,也是通過先綁定事件,在事件函數(shù)中使用。2,自已實(shí)現(xiàn)一個(gè)頁面棧,每次跳轉(zhuǎn)之前,先推進(jìn)這個(gè)自定義的頁面棧。3,不使用wx.navigateBack,從自定義頁面棧中取出一個(gè)頁面,redirectTo這樣就實(shí)現(xiàn)了無級(jí)跳轉(zhuǎn)。小程序官方的機(jī)制,適用于簡(jiǎn)單的、層級(jí)不多的場(chǎng)景。使用如上自定義棧,好處還有減少內(nèi)存占用,因?yàn)橛肋h(yuǎn)都是redirectTo。
二:判斷接口是否可用并給出"彈出提示框"提示
分享者:小春
-
//判斷接口是否可用
-
if (wx.openBluetoothAdapter) {
-
wx.openBluetoothAdapter()
-
} else {
-
//如果希望用戶在最新版本的客戶端上體驗(yàn)?zāi)男〕绦?,可以這樣子提示
-
wx.showModal({
-
title: '提示',
-
content: '當(dāng)前微信版本過低,無法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。'
-
})
-
}
三:修改窗口的背景色
-
page {
-
display: block;
-
min-height: 100%;
-
background-color: red;
-
}
|