摘要:接受一個參數,其指定小程序的生命周期回調等。前臺后臺定義當用戶點擊左上角關閉,或者按了設備鍵離開微信,小程序并沒有直接銷毀,而是進入了后臺當再次進入微信或再次打開小程序,又會從后臺進入前臺。
1. 注冊小程序
---------- 用App() 函數來注冊一個小程序。接受一個 Object 參數,其指定小程序的生命周期回調等。它必須在 app.js 中調用,必須調用且只能調用一次。不然會出現無法預期的后果。
前臺、后臺定義: 當用戶點擊左上角關閉,或者按了設備 Home
鍵離開微信,小程序并沒有直接銷毀,而是進入了后臺;當再次進入微信或再次打開小程序,又會從后臺進入前臺。需要注意的是:只有當小程序進入后臺一定時間,或者系統資源占用過高,才會被真正的銷毀。
App({ onLaunch: function(options) { // 小程序初始化完成時(全局只觸發一次) options包含小程序的初始path,query,scene(場景值),shareTicket,referrerInfo.appId,referrerInfo.extraData(scene=1037或1038時支持) }, onShow: function(options) { // Do something when show.小程序啟動,或從后臺進入前臺顯示時 參數與onLaunch一致 }, onHide: function() { // Do something when hide.小程序從前臺進入后臺時 }, onError: function(msg) { console.log(msg) //小程序發生腳本錯誤,或者 api 調用失敗時觸發,會帶上錯誤信息 }, onPageNotFound:function(){ //頁面不存在監聽函數, 小程序要打開的頁面不存在時觸發,會帶上頁面信息回調該函數 不存在頁面的path,打開不存在頁面的query,是否是本次啟動的首個頁面isEntryPage } > 開發者可以在 onPageNotFound 回調中進行重定向處理,但必須在回調中同步處理,異步處理(例如 setTimeout > 異步執行)無效 App({ onPageNotFound(res) { wx.redirectTo({ url: "pages/..." }) // 如果是 tabbar 頁面,請使用 wx.switchTab } }) > 如果開發者沒有添加 onPageNotFound 監聽,當跳轉頁面不存在時,將推入微信客戶端原生的頁面不存在提示頁面。 如果 onPageNotFound 回調中又重定向到另一個不存在的頁面,將推入微信客戶端原生的頁面不存在提示頁面,并且不再回調 onPageNotFound。 globalData: "I am global data" })2. 注冊頁面
Page(Object) 函數用來注冊一個頁面。接受一個 Object 類型參數,其指定頁面的初始數據、生命周期回調、事件處理函數等。
生命周期:
Page({ data: { text: "This is page data." }, onLoad: function(options) { // Do some initialize when page load.監聽頁面加載 options中有打開當前頁面路徑中的參數 }, onReady: function() { // Do something when page ready.監聽頁面顯示 }, onShow: function() { // Do something when page show.監聽頁面初次渲染完成,代表頁面已經準備妥當,可以和視圖層進行交互 }, onHide: function() { // Do something when page hide.監聽頁面隱藏,如 navigateTo 或底部 tab 切換到其他頁面,小程序切入后臺 }, onUnload: function() { // Do something when page close.監聽頁面卸載,如redirectTo或navigateBack到其他頁面時。 } })
頁面事件處理函數:
onPullDownRefres
監聽用戶下拉刷新事件。
需要在app.json的window選項中或頁面配置中開啟enablePullDownRefresh。
可以通過wx.startPullDownRefresh觸發下拉刷新,調用后觸發下拉刷新動畫,效果與用戶手動下拉刷新一致。
當處理完數據刷新后,wx.stopPullDownRefresh可以停止當前頁面的下拉刷新。
onReachBottom()
監聽用戶上拉觸底事件。
可以在app.json的window選項中或頁面配置中設置觸發距離onReachBottomDistance。
在觸發距離內滑動期間,本事件只會被觸發一次。
onShareAppMessage:
監聽用戶點擊頁面內轉發按鈕(
from:為button時,代表頁面內轉發按鈕,為menu時表右上角轉發 target:如果 from 值是 button,則 target 是觸發這次轉發事件的 button,否則為 undefined webViewUrl:頁面中包含組件時,返回當前 的url
注意:只有定義了此事件處理函數,右上角菜單才會顯示“轉發”按鈕
此事件需要 return 一個 Object,用于自定義轉發內容,返回內容如下: 轉發標題title:當前小程序名稱 轉發路徑path:轉發路徑 imageUrl:自定義圖片路徑
},
onPageScroll
option中有scrollTop,即頁面在垂直方向已滾動的距離(單位px)
onTabItemTap
當前是 tab 頁時,點擊 tab 時觸發
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
自定義組件處理事件
viewTap: function() {
this.setData({
text: "Set some data for updating view."
}, function() {
// this is setData callback
})
}
getCurrentPages()
getCurrentPages()
用于獲取當前頁面棧的實例,以數組形式按棧的順序給出,第一個元素為首頁,最后一個元素為當前頁面。
不要嘗試修改頁面棧,會導致路由以及頁面狀態錯誤。
不要在 App.onLaunch 的時候調用 getCurrentPages(),此時 page 還沒有生成。
navigateTo, redirectTo 只能打開非 tabBar 頁面。
switchTab 只能打開 tabBar 頁面。
reLaunch 可以打開任意頁面。
頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。
調用頁面路由帶的參數可以在目標頁面的onLoad中獲取。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/53169.html
摘要:接受一個參數,其指定小程序的生命周期回調等。前臺后臺定義當用戶點擊左上角關閉,或者按了設備鍵離開微信,小程序并沒有直接銷毀,而是進入了后臺當再次進入微信或再次打開小程序,又會從后臺進入前臺。 1. 注冊小程序 ---------- 用App() 函數來注冊一個小程序。接受一個 Object 參數,其指定小程序的生命周期回調等。它必須在 app.js 中調用,必須調用且只能調用一次。不然...
摘要:接受一個參數,其指定小程序的生命周期回調等。前臺后臺定義當用戶點擊左上角關閉,或者按了設備鍵離開微信,小程序并沒有直接銷毀,而是進入了后臺當再次進入微信或再次打開小程序,又會從后臺進入前臺。 1. 注冊小程序 ---------- 用App() 函數來注冊一個小程序。接受一個 Object 參數,其指定小程序的生命周期回調等。它必須在 app.js 中調用,必須調用且只能調用一次。不然...
閱讀 1633·2021-09-02 15:11
閱讀 1971·2019-08-30 14:04
閱讀 2558·2019-08-27 10:52
閱讀 1574·2019-08-26 11:52
閱讀 1195·2019-08-23 15:26
閱讀 2613·2019-08-23 15:09
閱讀 2603·2019-08-23 12:07
閱讀 2231·2019-08-22 18:41