1. 定义
每个小程序都需要在 app.js 中调用 App 方法注册小程序示例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。
整个小程序只有一个 App 实例,是全部页面共享的。
通过 getApp 方法获取到全局唯一的 App 示例,获取App上的数据或调用开发者注册在 App 上的函数。
2. App(Object object)
注册小程序。接受一个 Object 参数,其指定小程序的生命周期回调等。
App() 必须在 app.js 中调用,必须调用且只能调用一次。不然会出现无法预期的后果。
App参数详解如下图:
例子1:
App({
onLaunch (options) {
// Do something initial when launch.
},
onShow (options) {
// Do something when show.
},
onHide () {
// Do something when hide.
},
onError (msg) {
console.log(msg)
},
globalData: 'I am global data'
})
onLaunch(O
onLaunch(Object object):小程序初始化完成时触发,全局只触发一次。
onShow(Object object):小程序启动,或从后台进入前台显示时触发。
onHide():小程序从前台进入后台时触发。
onError(String error):小程序发生脚本错误或 API 调用报错时触发。
onPageNotFound(Object object):小程序要打开的页面不存在时触发。(基础库 1.9.90 开始支持,低版本需做兼容处理)
3. getApp(Object object)
用于获取小程序全局唯一的 App 实例。
例子2:
// xxx.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data
注意:
不要在定义于 App() 内的函数中,或调用 App 前调用 getApp() ,使用 this 就可以拿到 app 实例。
通过 getApp() 获取实例之后,不要私自调用生命周期函数。