1.場景值的概念
大概意思就是小程序是怎麼被啓動的,通過掃碼?還是通過點擊羣裏小程序分享卡片?或者其他,每種啓動入口對應一個場景值,目前有80多種場景值。
2.場景值什麼時候被賦值的
小程序是在程序啓動時被賦值的,也就是app.js中的onLaunch之前,這也是爲什麼場景值不穩定的原因,經常會發生明明是從分享卡片入口進來的,卻出現掃碼進入的場景值或者其他如1044、1001等等,肯定是因爲小程序在從分享卡片入口進來之前一定通過其他方式啓動過,不信你可以殺死小程序在從分享卡片進來就會表現正常了。
3.這會產生什麼影響?
分享卡片進到目標頁面的想退回主頁,發現退不回去了,直接redirectTo到主頁,會影響主頁進入目標頁面再返回的效果,本來那麼多場景值就夠煩人了,現在還不那麼準確。
4.這個問題的解決方案
從上述內容看來,利用場景值解決退回主頁的方案是行不通的,怎麼辦呢?果斷拋棄,可以參考如下代碼
var pages = getCurrentPages()
if(pages.length==1){
wx.redirectTo({
url: '../index/index',
})
}else{
wx.navigateBack({
delta: 1,
})
}
上述代碼的意思就是從分享卡片進來的棧中一定只存在一個頁面,從主頁進來的一定存在多個頁面,存在多個頁面即認爲可返回,存在一個頁面就要redirectTo了