小程序學習(三)小程序邏輯層的注冊程序和場景值


小程序學習(三)小程序邏輯層之注冊程序和場景值

 之前學習了小程序的基本架構和文件的類型,然后再參照官方的Dome,對小程序也有了一些了解。下面了解一下小程序框架的邏輯層。

 

小程序的邏輯層主要包含以下幾個點:

1、注冊程序

2、場景值

3、注冊頁面

4、路由

5、模塊化

6、API

 

一、注冊程序

App() 函數用來注冊一個小程序。接受一個 object參數,其指定小程序的生命周期函數等。這個在上一篇中有寫到,在全局的 app.js 文件中。

ojbect的常用參數有:

屬性  類型  描述  觸發時機
 onLaunch  Function  生命周期函數--監聽小程序初始化  當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次)
 onShow  Function  生命周期函數--監聽小程序顯示  當小程序啟動,或從后台進入前台顯示,會觸發 onShow
 onHide  Function  生命周期函數--監聽小程序隱藏  當小程序從前台進入后台,會觸發 onHide
 onError  Function  錯誤監聽函數  當小程序發生腳本錯誤,或者 api 調用失敗時,會觸發 onError 並帶上錯誤信息
 其他  Any    開發者可以添加任意的函數或數據到 Object 參數中,用 this 可以訪問

 

 

 

 

 

 

 

 

 

 

 

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

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

小程序運行機制在基礎庫版本 1.4.0 有所改變: 上一條關閉邏輯在新版本已不適用。詳情

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 兩 個函數

onLaunch, onShow 參數:

字段 類型 說明
path String 打開小程序的路徑
query Object 打開小程序的query
scene Number 打開小程序的場景值
shareTicket String shareTicket,詳見 獲取更多轉發信息
referrerInfo Object 當場景為由從另一個小程序或公眾號或App打開時,返回此字段
referrerInfo.appId String 來源小程序或公眾號或App的 appId,詳見下方說明
referrerInfo.extraData Object 來源小程序傳過來的數據,scene=1037或1038時支持


這里的場景值下面會說到,在指定的場景值下,referrerInfo會傳遞數據

 

GetApp()

全局的 getApp() 函數可以用來獲取到小程序實例

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

//在頁面的js文件中,可以獲取小程序的實例,然后通過實例對象獲取定義的全局變量

 

 

需要注意幾點:

  • App() 必須在 app.js 中注冊,且不能注冊多個。
  • 不要在定義於 App() 內的函數中調用 getApp() ,使用 this 就可以拿到 app 實例。
  • 不要在 onLaunch 的時候調用 getCurrentPages(),此時 page 還沒有生成。
  • 通過 getApp() 獲取實例之后,不要私自調用生命周期函數。

 

二、場景值

當前支持的場景值有:

場景值ID 說明
1001 發現欄小程序主入口
1005 頂部搜索框的搜索結果頁
1006 發現欄小程序主入口搜索框的搜索結果頁
1007 單人聊天會話中的小程序消息卡片
1008 群聊會話中的小程序消息卡片
1011 掃描二維碼
1012 長按圖片識別二維碼
1013 手機相冊選取二維碼
1014 小程序模版消息
1017 前往體驗版的入口頁
1019 微信錢包
1020 公眾號 profile 頁相關小程序列表
1022 聊天頂部置頂小程序入口
1023 安卓系統桌面圖標
1024 小程序 profile 頁
1025 掃描一維碼
1026 附近小程序列表
1027 頂部搜索框搜索結果頁“使用過的小程序”列表
1028 我的卡包
1029 卡券詳情頁
1031 長按圖片識別一維碼
1032 手機相冊選取一維碼
1034 微信支付完成頁
1035 公眾號自定義菜單
1036 App 分享消息卡片
1037 小程序打開小程序
1038 從另一個小程序返回
1039 搖電視
1042 添加好友搜索框的搜索結果頁
1043 公眾號模板消息
1044 帶 shareTicket 的小程序消息卡片(詳情)
1047 掃描小程序碼
1048 長按圖片識別小程序碼
1049 手機相冊選取小程序碼
1052 卡券的適用門店列表
1053 搜一搜的結果頁
1054 頂部搜索框小程序快捷入口
1056 音樂播放器菜單
1058 公眾號文章
1059 體驗版小程序綁定邀請頁
1064 微信連Wifi狀態欄
1067 公眾號文章廣告
1068 附近小程序列表廣告
1072 二維碼收款頁面
1073 客服消息列表下發的小程序消息卡片
1074 公眾號會話下發的小程序消息卡片

 

上面有說到 onLoauch 和 onShow函數,場景值主要是通過這兩個函數來傳遞。

其中只有在傳遞 1020、1035、1036、1037、1038、1043 這幾個場景值時,才會返回referrerInfo.appId

 

通過這些場景值,可以方便我們統計小程序訪問的來源。在后面針對某些功能做營銷時,能夠輕松的獲得有價值的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM