App

Mr.Hope
  • 小程序
大约 3 分钟

注册小程序。接受一个 Object 参数,其指定小程序的生命周期回调等。 重要

注意

App() 必须在 app.js 中调用,必须调用且只能调用一次。不然会出现无法预期的后果。

参数

Object object

属性类型默认值必填说明最低版本
onLaunchfunction生命周期回调——监听小程序初始化。
onShowfunction生命周期回调——监听小程序启动或切前台。
onHidefunction生命周期回调——监听小程序切后台。
onErrorfunction错误监听函数。
onPageNotFoundfunction页面不存在监听函数。1.9.90
onUnhandledRejectionfunction未处理的 Promise 拒绝事件监听函数。2.10.0
onThemeChangefunction监听系统主题变化2.11.0

| 其他 | any | | 否 | 开发者可以添加任意的函数或数据变量到 Object 参数中,用 this 可以访问 |

关于小程序前后台的定义和小程序的运行机制,请参考 运行机制

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(Object object)

小程序初始化完成时触发,全局只触发一次。参数也可以使用 wx.getLaunchOptionsSyncopen in new window 获取。

参数: 与 wx.getLaunchOptionsSyncopen in new window 一致

onShow(Object object)

小程序启动,或从后台进入前台显示时触发。也可以使用 wx.onAppShowopen in new window 绑定监听。

参数: 与 wx.onAppShowopen in new window 一致

onHide()

小程序从前台进入后台时触发。也可以使用 wx.onAppHideopen in new window 绑定监听。

onError(String error)

小程序发生脚本错误或 API 调用报错时触发。也可以使用 wx.onErroropen in new window 绑定监听。

参数: 与 wx.onErroropen in new window 一致

onPageNotFound(Object object)

小程序要打开的页面不存在时触发。也可以使用 wx.onPageNotFoundopen in new window 绑定监听。注意事项请参考 wx.onPageNotFoundopen in new window

参数: 与 wx.onPageNotFoundopen in new window 一致

示例代码:

App({
  onPageNotFound(res) {
    wx.redirectTo({
      url: "pages/...",
    }); // 如果是 tabbar 页面,请使用 wx.switchTab
  },
});

onUnhandledRejection(Object object)

基础库 2.10.0 开始支持

小程序有未处理的 Promise 拒绝时触发。也可以使用 wx.onUnhandledRejectionopen in new window 绑定监听。注意事项请参考 wx.onUnhandledRejectionopen in new window

参数: 与 wx.onUnhandledRejectionopen in new window 一致

onThemeChange(Object object)

基础库 2.11.0 开始支持

系统切换主题时触发。也可以使用 wx.onThemeChangeopen in new window 绑定监听。

参数: 与 wx.onThemeChangeopen in new window 一致

AppObject getApp(Object object)

获取到小程序全局唯一的 App 实例。

getApp 参数

Object object

属性类型默认值必填说明最低版本
allowDefaultbooleanfalseApp 未定义时返回默认实现。当 App 被调用时,默认实现中定义的属性会被覆盖合并到 App 中。一般用于独立分包2.2.4

示例代码:

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

注意

  • 不要在定义于 App() 内的函数中,或调用 App 前调用 getApp() ,使用 this 就可以拿到 app 实例。
  • 通过 getApp() 获取实例之后,不要私自调用生命周期函数。
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.1