应用
收藏
我的收藏

app.js 文件是小程序的逻辑文件,主要负责创建全局小程序应用实例(App()),配置生命周期,声明全局数据、调用 API 等。​

App()​

App(params) 是框架启动小程序的入口函数,需要开发者可以通过 App(params)的参数指定小程序的生命周期函数和其他一些自定义参数。​

params 参数说明​

属性​
类型​
描述​
触发时机​
onLaunch​
Function​
生命周期函数--监听小程序初始化​
小程序冷启动完成时触发,全局只触发一次。​
onShow​
Function​
生命周期函数--监听小程序显示​
当小程序启动,或从后台进入前台显示,会触发 onShow。​
onHide​
Function​
生命周期函数--监听小程序隐藏​
当小程序从前台进入后台,会触发 onHide。​
onError​
Function​
错误监听函数​
当小程序发生脚本错误,或者 API 调用失败时,会触发 onError 并带上错误信息。​
onPageNotFound​
Function​
页面不存在监听函数​
当小程序要打开的页面不存在时,触发事件的回调函数。​
onUnhandledRejection​
Function​
未处理的 Promise 拒绝事件监听函数。​
当小程序有未处理的 Promise 拒绝时触发。​
其他​
Any​
开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问。​

示例代码​

App({ onLaunch: function (options) { // Do something initial when launch. }, onShow: function (options) { // Do something when show. }, onHide: function () { // Do something when hide. }, onError: function (msg) { console.log(msg); }, onPageNotFound: function (msg) { // Do something when page path is not found. }, onUnhandledRejection: function (res) { // Do something when unhandled rejection occurs. }, globalData: "I am global data", });

onLaunch 参数​

onLaunch 参数同 tt.getLaunchOptionsSync。​

onShow 参数​

属性​
类型​
说明​
path​
String​
启动页面​
query​
Object​
启动参数​
referrerInfo​
Object​
来源信息。从另一个小程序进入小程序时返回。​
scene​
String​
场景值​
showFrom​
Number​
唤起小程序页面的来源方式,10 表示用户点击小程序入口 schema,0 表示其它方式,比如前后台切换。​

referrerInfo 说明​

字段​
类型​
说明​
appId​
String​
来源小程序的 AppID ​
extraData​
Object​
来源小程序打开当前小程序时携带的数据​

onPageNotFound​

当要打开的页面并不存在时,会回调这个监听器,并带上以下信息:​
属性​
类型​
说明​
path​
String​
不存在页面的路径​
query​
Object​
打开不存在页面的 query​
isEntryPage​
Boolean​
是否本次启动的首个页面​
注意:此钩子只有小程序启动时才会触发。
示例代码:​
App({ onPageNotFound(res) { tt.redirectTo({ url: "pages/...", }); // 重定向页面;如果是 tabbar 页面,请使用 tt.switchTab }, });

onUnhandledRejection​

小程序有未处理的 Promise 拒绝时触发。也可以使用 tt.onUnhandledRejection 绑定监听。注意事项请参考 tt.onUnhandledRejection。​
属性​
类型​
说明​
reason​
string​
拒绝原因,一般是一个 Error 对象​
promise​
Promise​
被拒绝的 Promise 对象​
示例代码:​
App({ onUnhandledRejection(res) { // Promise 异步异常处理逻辑 }, });

getApp()​

如果想在 page 里面获取 App() 设置的全局变量的话,可以通过 getApp() 获取。​
整个小程序只有一个 App 实例,是全部页面共享的。​
如果想在 page 里面获取 App() 设置的全局变量的话,可以通过 getApp()方法获取到全局唯一的 App 实例,获取 App 上的数据或调用开发者注册在 App 上的函数。​
示例代码:​
var appInstance = getApp(); console.log(appInstance.globalData); // I am global data