資訊動態(tài)

小程序場景值與微信小程序簡易教程

日期:2018-08-10 作者:管理員 來源:本站

微信小程序場景值與微信小程序簡易教程

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

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

場景值ID 說明
1001 發(fā)現(xiàn)欄小程序主入口,“最近使用”列表(基礎(chǔ)庫2.2.4版本起將包含“我的小程序”列表)
1005 頂部搜索框的搜索結(jié)果頁
1006 發(fā)現(xiàn)欄小程序主入口搜索框的搜索結(jié)果頁
1007 單人聊天會話中的小程序消息卡片
1008 群聊會話中的小程序消息卡片
1011 掃描二維碼
1012 長按圖片識別二維碼
1013 手機(jī)相冊選取二維碼
1014 小程序模版消息
1017 前往體驗版的入口頁
1019 微信錢包
1020 公眾號 profile 頁相關(guān)小程序列表
1022 聊天頂部置頂小程序入口
1023 安卓系統(tǒng)桌面圖標(biāo)
1024 小程序 profile 頁
1025 掃描一維碼
1026 附近小程序列表
1027 頂部搜索框搜索結(jié)果頁“使用過的小程序”列表
1028 我的卡包
1029 卡券詳情頁
1030 自動化測試下打開小程序
1031 長按圖片識別一維碼
1032 手機(jī)相冊選取一維碼
1034 微信支付完成頁
1035 公眾號自定義菜單
1036 App 分享消息卡片
1037 小程序打開小程序
1038 從另一個小程序返回
1039 搖電視
1042 添加好友搜索框的搜索結(jié)果頁
1043 公眾號模板消息
1044 帶 shareTicket 的小程序消息卡片
1045 朋友圈廣告
1046 朋友圈廣告詳情頁
1047 掃描小程序碼
1048 長按圖片識別小程序碼
1049 手機(jī)相冊選取小程序碼
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ù)覽
1103 發(fā)現(xiàn)欄小程序主入口,“我的小程序”列表(基礎(chǔ)庫2.2.4版本起該場景值廢棄)
1104 微信聊天主界面下拉,“我的小程序”欄(基礎(chǔ)庫2.2.4版本起該場景值廢棄)

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

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

小程序場景值與微信小程序簡易教程

小程序場景值與微信小程序簡易教程

App

App()

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

object參數(shù)說明:

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

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

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

小程序運(yùn)行機(jī)制在基礎(chǔ)庫版本 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ù)

字段 類型 說明
path String 打開小程序的路徑
query Object 打開小程序的query
scene Number 打開小程序的場景值
shareTicket String shareTicket
referrerInfo Object 當(dāng)場景為由從另一個小程序或公眾號或App打開時,返回此字段
referrerInfo.appId String 來源小程序或公眾號或App的 appId,詳見下方說明
referrerInfo.extraData Object 來源小程序傳過來的數(shù)據(jù),scene=1037或1038時支持

場景值。

以下場景支持返回 referrerInfo.appId:

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

onPageNotFound

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

當(dāng)要打開的頁面并不存在時,會回調(diào)這個監(jiān)聽器,并帶上以下信息:

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

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

示例代碼:

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

注意:

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

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

getApp()

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

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

注意:

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

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

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

  • 通過 getApp() 獲取實例之后,不要私自調(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號 粵ICP備19117377號 網(wǎng)站地圖 站點地圖
在線客服