全局逻辑文件:app.js
App({
//onLaunch()——监听小程序初始化,当小程序初始化完成时,会触发onLaunch(全局只触发一次)
onLaunch() {
// 展示本地存储能力,对logs进行初始化,通过wx.getStorageSync('logs')获取本地缓存中指定的 'logs' 对应的数组,第一次会返回一个空数组
//本地缓存可在调式器的Storage中看到key--logs和对应数组
const logs = wx.getStorageSync('logs') || []
//对 logs 进行数组更新,在数组头部添加一个格式化的时间字符串
logs.unshift(Date.now())
//使用wx.setStorageSync存储到本地缓存中指定的key中,即将变量 logs 存储到 'logs' 中
wx.setStorageSync('logs', logs)
// 登录,通过wx.login(Object object)获取临时登录凭证(code)
wx.login({
// success 接口调用成功的回调函数
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
wx.getSetting({
// success 接口调用成功的回调函数
success: res => {
//authSetting为用户授权结果,scope.userInfo是否授权用户信息,即点击获取头像昵称得到的微信授权弹窗,
//当选择拒绝时authSetting中scope.userInfo: false,允许则authSetting中scope.userInfo: true
if (res.authSetting['scope.userInfo']) {
// 若已经授权,则直接调用 getUserInfo 获取头像昵称等用户信息,不会弹框
wx.getUserInfo({
success: res => {
// res.userInfo中有用户的昵称、头像图片的 URL、性别、国家、省份、城市、所用语言等属性
// 将res.userInfo赋值给全局数据变量globalData中的userInfo
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 即因为网络获取数据是异步的,为保证数据传递,所以此处加入 callback 以防止这种情况
//userInfoReadyCallback方法定义在index.js的onload中
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}
}
})
},
globalData: {
userInfo: null
}
})
全局配置:app.json(此文件其内容必须符合JSON格式,所以文件内部不允许有注释,此处为作者便于自己理解在文章中插入注释)
pages——描述当前小程序所有页面路径,来指定小程序由哪些页面组成
"pages":[
"pages/index/index", ///首页
"pages/logs/logs" //第二页
]
windows——用于设置小程序的状态栏、导航条的标题、窗口背景色等外观设置,其他外观则在app.wxss中设置
"window":{
//下拉 loading 的样式,仅支持 dark / light(要实现需开启"enablePullDownRefresh")
"backgroundTextStyle":"light",
//(最上方)导航栏外观设置:
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
}
"style": "v2"——指定使用升级后的weui样式,v2表是表明启用新版的组件样式
sitemapLocation": "sitemap.json"——指明 sitemap.json 的位置,默认为 'sitemap.json' 即在 app.json 同级目录下名字的 sitemap.json 文件
全局样式:app.wxss(与css差不多,就不详解了)
sitemap.json :用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json ,则默认为所有页面都允许被索引;(个人理解为小程序能否被搜索到,若理解有误请留言告诉我)
desc——提示信息
rules——指定索引规则
“action”: “allow”——命中该规则的页面能被索引
“page”: “*”——表示所有页面,但是不能作为通配符使用
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
utils文件夹中的utils.js文件则用于获取当前系统日期和时间