支付宝小程序框架 app.js 注册小程序

2020-09-18 10:15 更新

App(object: Object)

App() 用于注册小程序,接受一个 Object 作为属性,用来配置小程序的生命周期等。 App() 必须在 app.js 中调用,必须调用且只能调用一次。

object 属性说明

属性 类型 描述 触发时机 基础库最低版本
onLaunch Function 生命周期回调:监听小程序初始化 当小程序初始化完成时触发,全局只触发一次。参数也可以使用 my.getLaunchOptionsSync 获取。 -
onShow Function 生命周期回调:监听小程序显示 当小程序启动,或从后台进入前台显示时触发。也可以使用 my.onAppShow 绑定监听。 -
onHide Function 生命周期回调:监听小程序隐藏 当当前页面被隐藏时触发,例如跳转、按下设备 Home 键离开。也可以使用 my.onAppHide 绑定监听。 -
onError Function 监听小程序错误 当小程序发生 js 错误时触发。也可以使用 my.onError 绑定监听。 -
onShareAppMessage Function 全局分享配置 - -
onUnhandledRejection Function 监听 unhandledrejection 事件 当 Promise 被 reject 且没有 reject 处理器时,会触发 onUnhandledRejection 事件。也可以使用 my.onUnhandledRejection 绑定监听。 1.24.1

前台/后台定义:

  • 小程序用户点击右上角关闭,或者按下设备 Home 键离开支付宝时,小程序并不会直接销毁,而是进入后台。
  • 当用户再次进入支付宝或再次打开小程序时,小程序会从后台进入前台。
  • 只有当小程序进入后台 5 分钟后,或占用系统资源过高,才会被真正销毁。

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

object 属性说明:

属性 类型 描述
query Object 当前小程序的 query,从启动参数的 query 字段解析而来
scene number 启动小程序的 场景值
path string 当前小程序的页面地址,从启动参数 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 来源小程序传过来的数据。 -

注意:

onHide()

小程序从前台进入后台时触发 onHide()

示例代码:

App({
  onHide() {
    // 进入后台时
    console.log('app hide');
  },
});

onError(error: String)

小程序发生脚本错误时触发。

示例代码:

App({
  onError(error) {
    // 小程序执行出错时
    console.log(error);
  },
});

onShareAppMessage(object: Object)

全局分享配置。当页面未设置 page.onShareAppMessage 时,调用分享会执行全局的分享设置,具体详情请参见 页面事件处理函数

onUnhandledRejection(object: Object)

Promisereject 且没有 reject 处理器时触发。也可使用 my.onUnhandledRejection 绑定监听。

参数和注意事项与 my.onUnhandledRejection 一致。

示例代码:

App({
  onUnhandledRejection(res) {
    // 当小程序代码的Promise 被 reject 且没有 reject 处理器时触发。
    console.log(res.reason, res.promise);
    //res.reason 是reject原因,res.promise 是被reject的Promise对象
  },
});

globalData 全局数据

App() 中可以设置全局数据 globalData

示例代码:

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

常见问题

Q:可以在 app.js 中关闭小程序吗?

A:不可以,关闭小程序得方法仅支持小程序页面点击右上角的关闭按钮。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号