app.js中的App函数用来注册一个小程序或设置全局变量。
App函数:
语法:App(Object)
参数: Object json对象
说明: App函数必须在app.js中调用,必须调用且只能调用
1 App({ 2 3 /** 4 * onLaunch(Object) 5 * 说明: 小程序初始化完成时触发,全局只触发一次。 6 * 参数: Object, 可从参数Object获取以下值: 7 * Object.path [String] 打开小程序的路径 8 * Object.query [String] 打开小程序的query 9 * Object.scene [Number] 打开小程序的场景值(值对应的场景:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html) 10 * Object.shareTicket [String] 转发分享信息,详见https://developers.weixin.qq.com/miniprogram/dev/api/share.html#wxgetshareinfoobject 11 * Object.referrerInfo [Object] 当场景为由从另一个小程序或公众号或App打开时,返回此字段 12 * Object.referrerInfo.appId [String] 来源小程序或公众号或App的 appId 13 * Object.referrerInfo.extraData [Object] 来源小程序传过来的数据,scene=1037或1038时支持 14 * 15 * 注意: referrerInfo、referrerInfo.appId、referrerInfo.extraData与scene场景值有关联 16 **/ 17 onLaunch : function(Object){ 18 }, 19 20 21 /** 22 * onShow(Object) 23 * 说明: 小程序启动,或从后台进入前台显示时触发。 24 * 参数: Object, 与onLaunch参数相同 25 **/ 26 onShow : function(Object){ 27 }, 28 29 30 /** 31 * onHide() 32 * 说明: 小程序从前台进入后台时触发。 33 **/ 34 onHide : function(){ 35 }, 36 37 38 /** 39 * onError(error) 40 * 说明: 小程序发生脚本错误,或者 api 调用失败时触发。 41 * 参数: error [String] 错误信息,包含堆栈 42 **/ 43 onError : function(error){ 44 }, 45 46 47 /** 48 * onPageNotFound(Object) 49 * 说明: 小程序要打开的页面不存在时触发。 50 * 参数: Object, 可从参数Object获取以下值: 51 * Object.path [String] 不存在页面的路径 52 * Object.query [Object] 打开不存在页面的 query 53 * Object.isEntryPage [Boolean] 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面) 54 * 55 * 注意: 56 * 1) 开发者可以在 onPageNotFound 回调中进行重定向处理(wx.redirectTo...),但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效。 57 * 2) 如果开发者没有添加 onPageNotFound 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。 58 * 3) 如果 onPageNotFound 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 onPageNotFound。 59 **/ 60 onPageNotFound : function(Object){ 61 this.errorPages = 2 // 采用this修改全局变量errorPages值 62 }, 63 64 65 /** 66 * 自定义其它类型数据,比如数组、JSON类 67 * 这类型数据为小程序所有页面共享 68 **/ 69 errorPages : 0, 70 count : 1, 71 myArr : [1, 2, 3], 72 myJson : { 73 "title" : "hello world!" 74 } 75 })
getApp函数:
语法: getApp(Object)
说明: 获取App内定义的相关数据,比如上例中的 count
参数: Object
Object.allowDefault [Boolean] 在 App 未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。
注意:
1) 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
2) 通过 getApp() 获取实例之后,不要私自调用生命周期函数。
示例:
比如要在页面:index内调用App的全局变量,index.js示例代码:
1 const app = getApp() 2 3 Page({ 4 onLoad: function () { 5 console.log( app.count ); 6 } 7 8 })