codecamp

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

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.acss 全局样式
支付宝小程序框架 getApp 方法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }