資訊動(dòng)態(tài)

小程序場(chǎng)景值與微信小程序簡(jiǎn)易教程

日期:2018-08-10 作者:管理員 來(lái)源:本站

微信小程序場(chǎng)景值與微信小程序簡(jiǎn)易教程

微信小程序場(chǎng)景值可以在App的onLaunch和onShow中獲取上述場(chǎng)景值,部分場(chǎng)景值下還可以獲取來(lái)源應(yīng)用、公眾號(hào)或小程序的appId?;A(chǔ)庫(kù) 1.1.0 開(kāi)始支持,低版本需做

當(dāng)前支持的場(chǎng)景值有:

場(chǎng)景值ID 說(shuō)明
1001 發(fā)現(xiàn)欄小程序主入口,“最近使用”列表(基礎(chǔ)庫(kù)2.2.4版本起將包含“我的小程序”列表)
1005 頂部搜索框的搜索結(jié)果頁(yè)
1006 發(fā)現(xiàn)欄小程序主入口搜索框的搜索結(jié)果頁(yè)
1007 單人聊天會(huì)話中的小程序消息卡片
1008 群聊會(huì)話中的小程序消息卡片
1011 掃描二維碼
1012 長(zhǎng)按圖片識(shí)別二維碼
1013 手機(jī)相冊(cè)選取二維碼
1014 小程序模版消息
1017 前往體驗(yàn)版的入口頁(yè)
1019 微信錢包
1020 公眾號(hào) profile 頁(yè)相關(guān)小程序列表
1022 聊天頂部置頂小程序入口
1023 安卓系統(tǒng)桌面圖標(biāo)
1024 小程序 profile 頁(yè)
1025 掃描一維碼
1026 附近小程序列表
1027 頂部搜索框搜索結(jié)果頁(yè)“使用過(guò)的小程序”列表
1028 我的卡包
1029 卡券詳情頁(yè)
1030 自動(dòng)化測(cè)試下打開(kāi)小程序
1031 長(zhǎng)按圖片識(shí)別一維碼
1032 手機(jī)相冊(cè)選取一維碼
1034 微信支付完成頁(yè)
1035 公眾號(hào)自定義菜單
1036 App 分享消息卡片
1037 小程序打開(kāi)小程序
1038 從另一個(gè)小程序返回
1039 搖電視
1042 添加好友搜索框的搜索結(jié)果頁(yè)
1043 公眾號(hào)模板消息
1044 帶 shareTicket 的小程序消息卡片
1045 朋友圈廣告
1046 朋友圈廣告詳情頁(yè)
1047 掃描小程序碼
1048 長(zhǎng)按圖片識(shí)別小程序碼
1049 手機(jī)相冊(cè)選取小程序碼
1052 卡券的適用門(mén)店列表
1053 搜一搜的結(jié)果頁(yè)
1054 頂部搜索框小程序快捷入口
1056 音樂(lè)播放器菜單
1057 錢包中的銀行卡詳情頁(yè)
1058 公眾號(hào)文章
1059 體驗(yàn)版小程序綁定邀請(qǐng)頁(yè)
1064 微信連Wi-Fi狀態(tài)欄
1067 公眾號(hào)文章廣告
1068 附近小程序列表廣告
1069 移動(dòng)應(yīng)用
1071 錢包中的銀行卡列表頁(yè)
1072 二維碼收款頁(yè)面
1073 客服消息列表下發(fā)的小程序消息卡片
1074 公眾號(hào)會(huì)話下發(fā)的小程序消息卡片
1077 搖周邊
1078 連Wi-Fi成功頁(yè)
1079 微信游戲中心
1081 客服消息下發(fā)的文字鏈
1082 公眾號(hào)會(huì)話下發(fā)的文字鏈
1084 朋友圈廣告原生頁(yè)
1089 微信聊天主界面下拉,“最近使用”欄(基礎(chǔ)庫(kù)2.2.4版本起將包含“我的小程序”欄)
1090 長(zhǎng)按小程序右上角菜單喚出最近使用歷史
1091 公眾號(hào)文章商品卡片
1092 城市服務(wù)入口
1095 小程序廣告組件
1096 聊天記錄
1097 微信支付簽約頁(yè)
1099 頁(yè)面內(nèi)嵌插件
1102 公眾號(hào) profile 頁(yè)服務(wù)預(yù)覽
1103 發(fā)現(xiàn)欄小程序主入口,“我的小程序”列表(基礎(chǔ)庫(kù)2.2.4版本起該場(chǎng)景值廢棄)
1104 微信聊天主界面下拉,“我的小程序”欄(基礎(chǔ)庫(kù)2.2.4版本起該場(chǎng)景值廢棄)

可以在 App 的 onLaunch 和 onShow 中獲取上述場(chǎng)景值,部分場(chǎng)景值下還可以獲取來(lái)源應(yīng)用、公眾號(hào)或小程序的appId。

Tip: 由于Android系統(tǒng)限制,目前還無(wú)法獲取到按 Home 鍵退出到桌面,然后從桌面再次進(jìn)小程序的場(chǎng)景值,對(duì)于這種情況,會(huì)保留上一次的場(chǎng)景值。

小程序場(chǎng)景值與微信小程序簡(jiǎn)易教程

小程序場(chǎng)景值與微信小程序簡(jiǎn)易教程

App

App()

App() 函數(shù)用來(lái)注冊(cè)一個(gè)小程序。接受一個(gè) object 參數(shù),其指定小程序的生命周期函數(shù)等。

object參數(shù)說(shuō)明:

屬性 類型 描述 觸發(fā)時(shí)機(jī)
onLaunch Function 生命周期函數(shù)--監(jiān)聽(tīng)小程序初始化 當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次)
onShow Function 生命周期函數(shù)--監(jiān)聽(tīng)小程序顯示 當(dāng)小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示,會(huì)觸發(fā) onShow
onHide Function 生命周期函數(shù)--監(jiān)聽(tīng)小程序隱藏 當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái),會(huì)觸發(fā) onHide
onError Function 錯(cuò)誤監(jiān)聽(tīng)函數(shù) 當(dāng)小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí),會(huì)觸發(fā) onError 并帶上錯(cuò)誤信息
onPageNotFound Function 頁(yè)面不存在監(jiān)聽(tīng)函數(shù) 當(dāng)小程序出現(xiàn)要打開(kāi)的頁(yè)面不存在的情況,會(huì)帶上頁(yè)面信息回調(diào)該函數(shù),詳見(jiàn)下文
其他 Any
開(kāi)發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 Object 參數(shù)中,用 this 可以訪問(wèn)

前臺(tái)、后臺(tái)定義: 當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備 Home 鍵離開(kāi)微信,小程序并沒(méi)有直接銷毀,而是進(jìn)入了后臺(tái);當(dāng)再次進(jìn)入微信或再次打開(kāi)小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。需要注意的是:只有當(dāng)小程序進(jìn)入后臺(tái)一定時(shí)間,或者系統(tǒng)資源占用過(guò)高,才會(huì)被真正的銷毀。

關(guān)閉小程序(基礎(chǔ)庫(kù)版本1.1.0開(kāi)始支持): 當(dāng)用戶從掃一掃、轉(zhuǎn)發(fā)等入口(場(chǎng)景值為1007, 1008, 1011, 1025)進(jìn)入小程序,且沒(méi)有置頂小程序的情況下退出,小程序會(huì)被銷毀。

小程序運(yùn)行機(jī)制在基礎(chǔ)庫(kù)版本 1.4.0 有所改變: 上一條關(guān)閉邏輯在新版本已不適用。

示例代碼:

App({ onLaunch: function(options) { // Do something initial when launch. }, onShow: function(options) { // Do something when show. }, onHide: function() { // Do something when hide. }, onError: function(msg) { console.log(msg)
  }, globalData: 'I am global data' })

onLaunch, onShow 參數(shù)

字段 類型 說(shuō)明
path String 打開(kāi)小程序的路徑
query Object 打開(kāi)小程序的query
scene Number 打開(kāi)小程序的場(chǎng)景值
shareTicket String shareTicket
referrerInfo Object 當(dāng)場(chǎng)景為由從另一個(gè)小程序或公眾號(hào)或App打開(kāi)時(shí),返回此字段
referrerInfo.appId String 來(lái)源小程序或公眾號(hào)或App的 appId,詳見(jiàn)下方說(shuō)明
referrerInfo.extraData Object 來(lái)源小程序傳過(guò)來(lái)的數(shù)據(jù),scene=1037或1038時(shí)支持

場(chǎng)景值。

以下場(chǎng)景支持返回 referrerInfo.appId:

場(chǎng)景值 場(chǎng)景 appId 信息含義
1020 公眾號(hào) profile 頁(yè)相關(guān)小程序列表 返回來(lái)源公眾號(hào) appId
1035 公眾號(hào)自定義菜單 返回來(lái)源公眾號(hào) appId
1036 App 分享消息卡片 返回來(lái)源應(yīng)用 appId
1037 小程序打開(kāi)小程序 返回來(lái)源小程序 appId
1038 從另一個(gè)小程序返回 返回來(lái)源小程序 appId
1043 公眾號(hào)模板消息 返回來(lái)源公眾號(hào) appId

onPageNotFound

基礎(chǔ)庫(kù) 1.9.90 開(kāi)始支持,低版本需做兼容處理

當(dāng)要打開(kāi)的頁(yè)面并不存在時(shí),會(huì)回調(diào)這個(gè)監(jiān)聽(tīng)器,并帶上以下信息:

字段 類型 說(shuō)明
path String 不存在頁(yè)面的路徑
query Object 打開(kāi)不存在頁(yè)面的 query
isEntryPage Boolean 是否本次啟動(dòng)的首個(gè)頁(yè)面(例如從分享等入口進(jìn)來(lái),首個(gè)頁(yè)面是開(kāi)發(fā)者配置的分享頁(yè)面)

開(kāi)發(fā)者可以在 onPageNotFound 回調(diào)中進(jìn)行重定向處理,但必須在回調(diào)中同步處理,異步處理(例如 setTimeout 異步執(zhí)行)無(wú)效。

示例代碼:

App({
  onPageNotFound(res) {
    wx.redirectTo({ url: 'pages/...' }) // 如果是 tabbar 頁(yè)面,請(qǐng)使用 wx.switchTab }
})

注意:

  1. 如果開(kāi)發(fā)者沒(méi)有添加 onPageNotFound 監(jiān)聽(tīng),當(dāng)跳轉(zhuǎn)頁(yè)面不存在時(shí),將推入微信客戶端原生的頁(yè)面不存在提示頁(yè)面

  2. 如果 onPageNotFound 回調(diào)中又重定向到另一個(gè)不存在的頁(yè)面,將推入微信客戶端原生的頁(yè)面不存在提示頁(yè)面,并且不在回調(diào) onPageNotFound

getApp()

全局的 getApp() 函數(shù)可以用來(lái)獲取到小程序?qū)嵗?/p>

// other.js var appInstance = getApp() console.log(appInstance.globalData) // I am global data

注意:

  • App() 必須在 app.js 中注冊(cè),且不能注冊(cè)多個(gè)。

  • 不要在定義于 App() 內(nèi)的函數(shù)中調(diào)用 getApp() ,使用 this 就可以拿到 app 實(shí)例。

  • 不要在 onLaunch 的時(shí)候調(diào)用 getCurrentPages(),此時(shí) page 還沒(méi)有生成。

  • 通過(guò) getApp() 獲取實(shí)例之后,不要私自調(diào)用生命周期函數(shù)。


二維碼
掃二維碼手機(jī)查看該文章
當(dāng)前網(wǎng)址:http://yngytx.cn/wechat/594.html

相關(guān)資訊

?
Copyright ? 2007-2024 珠海市網(wǎng)訊互聯(lián)信息科技有限公司 yngytx.cn 版權(quán)所有
粵公網(wǎng)安備44040202000391號(hào) 粵ICP備19117377號(hào) 網(wǎng)站地圖 站點(diǎn)地圖
在線客服