小程序中逻辑层(app service)的使用方法详解【仟亿科技】-欧洲杯买球app
app()
app()
函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。
object参数说明:
属性 | 类型 | 描述 | 触发时机 |
---|
onlaunch | function | 生命周期函数--监听小程序初始化 | 当小程序初始化完成时,会触发 onlaunch(全局只触发一次) |
onshow | function | 生命周期函数--监听小程序显示 | 当小程序启动,或从后台进入前台显示,会触发 onshow |
onhide | function | 生命周期函数--监听小程序隐藏 | 当小程序从前台进入后台,会触发 onhide |
onerror | function | 错误监听函数 | 当小程序发生脚本错误,或者 api 调用失败时,会触发 onerror 并带上错误信息 |
其他 | any |
| 开发者可以添加任意的函数或数据到 object 参数中,用 this 可以访问 |
前台、后台定义: 当用户点击左上角关闭,或者按了设备 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'})
onlaunch, onshow 参数
字段 | 类型 | 说明 |
---|
path | string | 打开小程序的路径 |
query | object | 打开小程序的query |
scene | number | 打开小程序的场景值 |
shareticket | string | shareticket, |
referrerinfo | object | 当场景为由从另一个小程序或公众号或app打开时,返回此字段 |
referrerinfo.appid | string | 来源小程序或公众号或app的 appid,详见下方说明 |
referrerinfo.extradata | object | 来源小程序传过来的数据,scene=1037或1038时支持 |
场景值 。
以下场景支持返回 referrerinfo.appid:
场景值 | 场景 | appid 信息含义 |
---|
1020 | 公众号 profile 页相关小程序列表 | 返回来源公众号 appid |
1035 | 公众号自定义菜单 | 返回来源公众号 appid |
1036 | app 分享消息卡片 | 返回来源应用 appid |
1037 | 小程序打开小程序 | 返回来源小程序 appid |
1038 | 从另一个小程序返回 | 返回来源小程序 appid |
1043 | 公众号模板消息 | 返回来源公众号 appid |
getapp()
全局的 getapp()
函数可以用来获取到小程序实例。
// other.jsvar appinstance = getapp()console.log(appinstance.globaldata) // i am global data
注意:
app()
必须在 app.js
中注册,且不能注册多个。
不要在定义于 app()
内的函数中调用 getapp()
,使用 this
就可以拿到 app 实例。
不要在 onlaunch 的时候调用 getcurrentpages()
,此时 page 还没有生成。
通过 getapp()
获取实例之后,不要私自调用生命周期函数。