微信小程序开发(三)注册小程序app.js


文件:app.js

 小程序的入口文件

app()函数,注册一个小程序,接受object参数,指定小程序的生命周期函数等。

属性类型描述触发时机
onLaunchFunction小程序初始化当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShowFunction小程序显示当小程序启动,或从后台进入前台显示,会触发 onShow
onHideFunction小程序隐藏当小程序从前台进入后台,会触发 onHide
onErrorFunction错误监听函数当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
onPageNotFoundFunction页面不存在监听函数
当小程序出现要打开的页面不存在的情况,会带上页面信息回调该函数,详见下文
其他Any
开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问

//app.js
App ({
onLaunch : function () {
// 展示本地存储能力
var logs = wx . getStorageSync ( 'logs' ) || []
logs . unshift ( Date . now ())
wx . setStorageSync ( 'logs' , logs )

// 登录
wx . login ({
success : res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx . getSetting ({
success : res => {
if ( res . authSetting [ 'scope.userInfo' ]) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx . getUserInfo ({
success : res => {
// 可以将 res 发送给后台解码出 unionId
this . globalData . userInfo = res . userInfo

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if ( this . userInfoReadyCallback ) {
this . userInfoReadyCallback ( res )
}
}
})
}
}
})
},
globalData : {
userInfo : null
}
})

onLaunch, onShow 参数

字段类型说明
pathString打开小程序的路径
queryObject打开小程序的query
sceneNumber打开小程序的场景值
shareTicketStringshareTicket
referrerInfoObject当场景为由另一个小程序打开时,返回此字段
referrerInfo.appIdString来源小程序的 appId
referrerInfo.extraDataObject来源小程序传过来的数据

以下场景支持返回 referrerInfo.appId:

场景值场景appId 信息含义
1020公众号 profile 页相关小程序列表返回来源公众号 appId
1035公众号自定义菜单返回来源公众号 appId
1036App 分享消息卡片返回来源应用 appId
1037小程序打开小程序返回来源小程序 appId
1038从另一个小程序返回返回来源小程序 appId
1043公众号模板消息返回来源公众号 appId

getApp()


我们提供了全局的getApp()函数,可以获取到小程序实例。

// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data

注意:

App()必须在app.js中注册,且不能注册多个。

不要在定义于App()内的函数中调用getApp(),使用this就可以拿到app实例。

不要在onLaunch的时候调用getCurrentPage(),此时page还没有生成。

通过getApp()获取实例之后,不要私自调用生命周期函数。

前台、后台定义:当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

关闭小程序(基础库版本1.1.0开始支持):

当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。

小程序运行机制在基础库版本 1.4.0 有所改变:上一条关闭逻辑在新版本已不适用


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值