根據(jù)微信小程序返回給我們的場景值哈误,我們可以根據(jù)不同的場景做出不同的處理性雄,更加方便我們對使用場景的劃分
當(dāng)前支持的場景值有:
1001:發(fā)現(xiàn)欄小程序主入口窗慎,“最近使用”列表(基礎(chǔ)庫2.2.4版本起將包含“我的小程序”列表)
1005:頂部搜索框的搜索結(jié)果頁
1006:發(fā)現(xiàn)欄小程序主入口搜索框的搜索結(jié)果頁
1007:單人聊天會話中的小程序消息卡片
1008:群聊會話中的小程序消息卡片
1011:掃描二維碼
1012:長按圖片識別二維碼
1013:手機相冊選取二維碼
1014:小程序模版消息
1017:前往體驗版的入口頁
1019:微信錢包
1020:公眾號 profile 頁相關(guān)小程序列表
1022:聊天頂部置頂小程序入口
1023:安卓系統(tǒng)桌面圖標(biāo)
1024:小程序 profile 頁
1025:掃描一維碼
1026:附近小程序列表
1027:頂部搜索框搜索結(jié)果頁“使用過的小程序”列表
1028:我的卡包
1029:卡券詳情頁
1030:自動化測試下打開小程序
1031:長按圖片識別一維碼
1032:手機相冊選取一維碼
1034:微信支付完成頁
1035:公眾號自定義菜單
1036:App 分享消息卡片
1037:小程序打開小程序
1038:從另一個小程序返回
1039:搖電視
1042:添加好友搜索框的搜索結(jié)果頁
1043:公眾號模板消息
1044:帶 shareTicket 的小程序消息卡片
1045:朋友圈廣告
1046:朋友圈廣告詳情頁
1047:掃描小程序碼
1048:長按圖片識別小程序碼
1049:手機相冊選取小程序碼
1052:卡券的適用門店列表
1053:搜一搜的結(jié)果頁
1054:頂部搜索框小程序快捷入口
1056:音樂播放器菜單
1057:錢包中的銀行卡詳情頁
1058:公眾號文章
1059:體驗版小程序綁定邀請頁
1064:微信連Wi-Fi狀態(tài)欄
1067:公眾號文章廣告
1068:附近小程序列表廣告
1069:移動應(yīng)用
1071:錢包中的銀行卡列表頁
1072:二維碼收款頁面
1073:客服消息列表下發(fā)的小程序消息卡片
1074:公眾號會話下發(fā)的小程序消息卡片
1077:搖周邊
1078:連Wi-Fi成功頁
1079:微信游戲中心
1081:客服消息下發(fā)的文字鏈
1082:公眾號會話下發(fā)的文字鏈
1084:朋友圈廣告原生頁
1089:微信聊天主界面下拉,“最近使用”欄(基礎(chǔ)庫2.2.4版本起將包含“我的小程序”欄)
1090:長按小程序右上角菜單喚出最近使用歷史
1091:公眾號文章商品卡片
1092:城市服務(wù)入口
1095:小程序廣告組件
1096:聊天記錄
1097:微信支付簽約頁
1099:頁面內(nèi)嵌插件
1102:公眾號 profile 頁服務(wù)預(yù)覽
可以在 App 的 onLaunch 和 onShow 中獲取上述場景值,部分場景值下還可以獲取來源應(yīng)用、公眾號或小程序的appId
我們可以在onLaunch, onShow函數(shù)中獲取到場景值
onLaunch, onShow 參數(shù)
字段 | 類型 | 說明 |
---|---|---|
path | String | 打開小程序的路徑 |
query | Object | 打開小程序的query |
scene | Number | 打開小程序的場景值 |
shareTicket | String | |
referrerInfo | Object | 當(dāng)場景為由從另一個小程序或公眾號或App打開時粘秆,返回此字段 |
referrerInfo.appId | String | 來源小程序或公眾號或App的 appId |
referrerInfo.extraData | Object | 來源小程序傳過來的數(shù)據(jù),scene=1037或1038時支持 |
這里來做一個簡單的場景說明:微信小程序免密簽約微信
App({
onShow(res) {
if (res.scene === 1038) { // 場景值1038:從被打開的小程序返回
const { appId, extraData } = res.referrerInfo
if (appId == 'wxbd687630cd02ce1d') { // appId為wxbd687630cd02ce1d:從簽約小程序跳轉(zhuǎn)回來
if (typeof extraData == 'undefined'){
// TODO
// 客戶端小程序不確定簽約結(jié)果收毫,需要向商戶側(cè)后臺請求確定簽約結(jié)果
return;
}
if(extraData.return_code == 'SUCCESS'){
// TODO
// 客戶端小程序簽約成功攻走,需要向商戶側(cè)后臺請求確認簽約結(jié)果
var contract_id = extraData.contract_id
return;
} else {
// TODO
// 簽約失敗
return;
}
}
}
}
})