当前阅读教程:微信小程序入门教程 > 小程序App注册程序 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
阅读(22555525) 收藏 赞(5685) 分享 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
上一篇: 逻辑层.js脚本 | 下一篇: 运行机制 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
小程序App注册程序包含一系列函数,例如:App(Object)、onLaunch(Object)、onShow(Object)、onHide()、onError(String error)、onError(String error)、onError(String error)等。下面分别介绍。 1.App(Object)App() 函数用来注册一个小程序。接受一个 Object 参数,指定小程序的生命周期回调等。App() 必须在 app.js 中调用且只能调用一次。不然会出现无法预期的后果。Object参数说明参见表2-9。 表2-9 Object参数表
前台、后台的含义是: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是,只有当小程序进入后台一定时间,或者系统资源占用过高,小程序才会被真正的销毁。 关闭小程序(基础库版本1.1.0开始支持): 当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。 小程序运行机制在基础库版本 1.4.0 有所改变:上一条“关闭小程序”逻辑在新版本已不适用。 代码示例 如下: 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) }, globalData: 'I am global data' }) 2.onLaunch(Object)小程序初始化完成时触发,全局只触发一次。Object 参数说明参见表2-10。 表2-10 Object参数表
referrerInfo.appId场景值参见表2-11。 表2-11 referrerInfo.appId场景值
3.onShow(Object)小程序启动,或从后台进入前台显示时触发。Object 参数说明:与 onLaunch 一致 4.onHide()小程序从前台进入后台时触发。 5.onError(String error)小程序发生脚本错误,或者 API 调用失败时触发。参数说明如下:
6.onPageNotFound(Object)基础库 1.9.90 开始支持,低版本需做兼容处理。小程序要打开的页面不存在时触发。Object 参数说明如下:
开发者可以在 onPageNotFound 回调中进行重定向处理,但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效。代码示例 如下: App({ onPageNotFound(res) { wx.redirectTo({ url: 'pages/...' }) // 如果是 tabbar 页面,请使用 wx.switchTab } })
注意: l 如果开发者没有添加 onPageNotFound 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。 l 如果 onPageNotFound 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 onPageNotFound。 7.getApp(Object)全局的 getApp() 函数可以用来获取到小程序 App 实例。Object 参数说明如下:
代码示例 如下: // other.js var appInstance = getApp() console.log(appInstance.globalData) // I am global data
注意: l 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以获取 app 实例。 l 通过 getApp() 获取实例之后,不要私自调用生命周期函数。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
上一篇: 逻辑层.js脚本 | 下一篇: 运行机制 |