App(config: Object)
介绍
注册小程序。接受一个 Object 参数,其指定小程序的生命周期回调等。
App()
必须在 app.js
中调用,必须调用且只能调用一次。不然会出现无法预期的效果。
参数
属性 | 类型 | 默认值 | 必填 | 描述 | 最低版本 |
---|---|---|---|---|---|
onLaunch | function | 否 | 生命周期回调——监听小程序初始化。 | ||
onShow | function | 否 | 生命周期回调——监听小程序启动或切前台。 | ||
onHide | function | 否 | 生命周期回调——监听小程序切后台。 | ||
onError | function | 否 | 错误监听函数。 | ||
onPageNotFound | function | 否 | 页面不存在监听函数。 | ||
onThemeChange | function | 否 | 监听系统主题变化 | ||
onEvent | function | 否 | 点击看板的时候触发事件 | ||
其他 | any | 否 | 开发者可以添加任意的函数或数据变量到 Object 参数中,用 this 可以访问 |
生命周期
onLaunch(options: Object)
小程序初始化完成时触发,全局只触发一次。参数也可以使用 ty.getLaunchOptionsSync 获取。
参数:与 ty.getLaunchOptionsSync 一致
onShow(options: Object)
小程序启动,或从后台进入前台显示时触发。也可以使用 ty.onAppShow 绑定监听。
参数:与 ty.onAppShow 一致
onHide()
小程序从前台进入后台时触发。也可以使用 ty.onAppHide 绑定监听。
onError(String error)
小程序发生脚本错误或 API 调用报错时触发。也可以使用 ty.onError 绑定监听。
参数:与 ty.onError 一致
onPageNotFound(options: Object)
小程序要打开的页面不存在时触发。也可以使用 ty.onPageNotFound 绑定监听。 参数:与 ty.onPageNotFound 一致
示例代码:
App({
onPageNotFound(res) {
ty.redirectTo({
url: '/pages/...',
}); // 如果是 tabbar 页面,请使用 ty.switchTab
},
});
👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。
onThemeChange(options: Object)
系统切换主题时触发。也可以使用 ty.onThemeChange 绑定监听。
参数:与 ty.onThemeChange 一致
示例代码
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',
});
onEvent(options: Object)
点击看板的时候触发事件, 参数为 boardMenus
中的对象。
参数:与 ty.onAppEvent 一致
示例代码
App({
onEvent(option) {
console.log(option);
},
globalData: 'I am global data',
});
getApp(): AppObject
获取到小程序全局唯一的 App
实例。
示例
// other.js
var appInstance = getApp();
console.log(appInstance.globalData); // I am global data
注意事项
- 不要在定义于
App()
内的函数中,或调用App()
之后的任何时间再调用getApp()
,使用this
就可以拿到 app 实例。 - 通过
getApp
获取实例之后,不要私自调用生命周期函数。
默认模式
基础库 >= 2.16.0
如果在 App()
前调用了 getApp()
,则该函数会返回 {__fake_app__: true}
的假对象,而不是真正的 App
实例。在该对象上添加的任何属性和方法,都会被覆盖到真正的 App
实例上。 请注意属性名冲突的问题。
getCurrentPages(): PageObject[]
获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。
注意事项
- 不要尝试修改页面栈,会导致路由以及页面状态错误。
- 不要在
App.onLaunch
的时候调用getCurrentPages()
,此时page
还没有生成。
示例
getCurrentPages(): PageObject[]
获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。
注意事项
不要尝试修改页面栈,会导致路由以及页面状态错误。
不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。
示例
// page/index.js
Page({
onLoad() {
const pageInsts = getCurrentPages();
const currentPagePath = pageInsts[pageInsts.length - 1].route;
consoe.log('currentPagePath ===> ', currentPagePath);
},
});
👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。