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


文件:app.js

 小程序的入口文件

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

属性 类型 描述 触发时机
onLaunch Function 小程序初始化 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShow Function 小程序显示 当小程序启动,或从后台进入前台显示,会触发 onShow
onHide Function 小程序隐藏 当小程序从前台进入后台,会触发 onHide
onError Function 错误监听函数 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
onPageNotFound Function 页面不存在监听函数
当小程序出现要打开的页面不存在的情况,会带上页面信息回调该函数,详见下文
其他 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 参数

字段 类型 说明
path String 打开小程序的路径
query Object 打开小程序的query
scene Number 打开小程序的场景值
shareTicket String shareTicket
referrerInfo Object 当场景为由另一个小程序打开时,返回此字段
referrerInfo.appId String 来源小程序的 appId
referrerInfo.extraData Object 来源小程序传过来的数据

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

场景值 场景 appId 信息含义
1020 公众号 profile 页相关小程序列表 返回来源公众号 appId
1035 公众号自定义菜单 返回来源公众号 appId
1036 App 分享消息卡片 返回来源应用 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 有所改变:上一条关闭逻辑在新版本已不适用


你可能感兴趣的:(微信)