支付寶小程序框架 app.js 注冊小程序

2020-09-18 10:15 更新

App(object: Object)

App() 用于注冊小程序,接受一個 Object 作為屬性,用來配置小程序的生命周期等。 App() 必須在 app.js 中調(diào)用,必須調(diào)用且只能調(diào)用一次。

object 屬性說明

屬性 類型 描述 觸發(fā)時機 基礎(chǔ)庫最低版本
onLaunch Function 生命周期回調(diào):監(jiān)聽小程序初始化 當小程序初始化完成時觸發(fā),全局只觸發(fā)一次。參數(shù)也可以使用 my.getLaunchOptionsSync 獲取。 -
onShow Function 生命周期回調(diào):監(jiān)聽小程序顯示 當小程序啟動,或從后臺進入前臺顯示時觸發(fā)。也可以使用 my.onAppShow 綁定監(jiān)聽。 -
onHide Function 生命周期回調(diào):監(jiān)聽小程序隱藏 當當前頁面被隱藏時觸發(fā),例如跳轉(zhuǎn)、按下設備 Home 鍵離開。也可以使用 my.onAppHide 綁定監(jiān)聽。 -
onError Function 監(jiān)聽小程序錯誤 當小程序發(fā)生 js 錯誤時觸發(fā)。也可以使用 my.onError 綁定監(jiān)聽。 -
onShareAppMessage Function 全局分享配置 - -
onUnhandledRejection Function 監(jiān)聽 unhandledrejection 事件 當 Promise 被 reject 且沒有 reject 處理器時,會觸發(fā) onUnhandledRejection 事件。也可以使用 my.onUnhandledRejection 綁定監(jiān)聽。 1.24.1

前臺/后臺定義:

  • 小程序用戶點擊右上角關(guān)閉,或者按下設備 Home 鍵離開支付寶時,小程序并不會直接銷毀,而是進入后臺。
  • 當用戶再次進入支付寶或再次打開小程序時,小程序會從后臺進入前臺。
  • 只有當小程序進入后臺 5 分鐘后,或占用系統(tǒng)資源過高,才會被真正銷毀。

onLaunch(object: Object) 及 onShow(object: Object)

object 屬性說明:

屬性 類型 描述
query Object 當前小程序的 query,從啟動參數(shù)的 query 字段解析而來
scene number 啟動小程序的 場景值
path string 當前小程序的頁面地址,從啟動參數(shù) page 字段解析而來,page 忽略時默認為首頁
referrerInfo Object 來源信息

比如,啟動小程序的 scheme 如下:

alipays://platformapi/startapp?appId=1999&query=number%3D1&page=x%2Fy%2Fz

  • 小程序首次啟動時,onLaunch 方法可獲取 querypath 屬性值。
  • 小程序在后臺被用 scheme 打開,也可從 onShow 方法中獲取 querypath 屬性值。

App({
  onLaunch(options) {
    // 第一次打開
    console.log(options.query);
    // {number:1}
    console.log(options.path);
    // x/y/z
  },
  onShow(options) {
    // 從后臺被 scheme 重新打開
    console.log(options.query);
    // {number:1}
    console.log(options.path);
    // x/y/z
  },
});

referrerInfo 子屬性說明:

屬性 類型 描述 最低版本
appId string 來源小程序。 -
sourceServiceId string 來源插件,當處于插件運行模式時可見。 1.11.0
extraData Object 來源小程序傳過來的數(shù)據(jù)。 -

注意:

onHide()

小程序從前臺進入后臺時觸發(fā) onHide()

示例代碼:

App({
  onHide() {
    // 進入后臺時
    console.log('app hide');
  },
});

onError(error: String)

小程序發(fā)生腳本錯誤時觸發(fā)。

示例代碼:

App({
  onError(error) {
    // 小程序執(zhí)行出錯時
    console.log(error);
  },
});

onShareAppMessage(object: Object)

全局分享配置。當頁面未設置 page.onShareAppMessage 時,調(diào)用分享會執(zhí)行全局的分享設置,具體詳情請參見 頁面事件處理函數(shù)。

onUnhandledRejection(object: Object)

Promisereject 且沒有 reject 處理器時觸發(fā)。也可使用 my.onUnhandledRejection 綁定監(jiān)聽。

參數(shù)和注意事項與 my.onUnhandledRejection 一致。

示例代碼:

App({
  onUnhandledRejection(res) {
    // 當小程序代碼的Promise 被 reject 且沒有 reject 處理器時觸發(fā)。
    console.log(res.reason, res.promise);
    //res.reason 是reject原因,res.promise 是被reject的Promise對象
  },
});

globalData 全局數(shù)據(jù)

App() 中可以設置全局數(shù)據(jù) globalData。

示例代碼:

// app.js
App({
  globalData: 1
});

常見問題

Q:可以在 app.js 中關(guān)閉小程序嗎?

A:不可以,關(guān)閉小程序得方法僅支持小程序頁面點擊右上角的關(guān)閉按鈕。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號