1.登录授权
在需要查询是否登录的地方,我这里是在首页的onready中
onReady: function () {
//是否授权
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
//已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
console.log("已经授权");
wx.getUserInfo({
success: function (res){
app.globalData.userInfo = res.userInfo
}
})
} else {
console.log("未授权跳转login");
wx.navigateTo({
url: '/pages/login/login',
})
}
}
})
},
//我这里没有将个人信息存入缓存中,也可以存入缓存然后通过缓存中是否有用户信息来判断是否授权
Login界面中有一个登录按钮
<button class='login-btn' open-type='getUserInfo' lang='zh_CN' bindgetuserinfo='onGotUserInfo' hover-class='btn-hover' >微信登录</button>
点击方法:
onGotUserInfo: function (e) {
console.log('errMsg:'+e.detail.errMsg)
console.log(+e.detail.userInfo)
console.log('rawData:'+e.detail.rawData)
if(e.detail.userInfo){
console.log('点击了授权')
app.globalData.userInfo = e.detail.userInfo
wx.login({
success: function(res){
console.log(res)
//返回临时凭证code 传入后台获取openid和session_key
wx.request({
url: 'testurl',
data:{
code:res.code
},
method:'POST',
header:{
'content-type': 'application/json' // 默认值
},
success: function(res){
console.log(res)
}
})
}
})
}else{
console.log('拒绝了授权')
}
wx.navigateBack({
})
},
2.音效的使用
直接用innerAudioContext播放URL会有延迟,体验很差,可以将资源存入缓存中,通过PATH来播放
globaldata中:
home_btn:'',
next_question:'',
wrong_1:'',
wrong_2: '',
right_1:'',
right_2:'',
unit_pass_1:'',
unit_pass_2:'',
unit_pass_3:'',
unit_fail:'',
game_pass_1:'',
game_pass_2:'',
game_pass_3:'',
game_fail:'',
onLaunch中:
self.saveAudioFile('home_btn')
self.saveAudioFile('next_question')
saveAuidoFile方法:
saveAudioFile:function(fileName){
var self = this;
//先判断缓存中是否存在
wx.getStorage({
key: fileName,
success: function(res) {
//存在的话直接赋值给globaldata
self.globalData[fileName] = res.data
},
fail: function(res){
//不存在,将提示音存入本地缓存
wx.downloadFile({
url: self.globalData.audioHeader + fileName + '.mp3',
success(res) {
wx.saveFile({
tempFilePath: res.tempFilePath,
success(res) {
wx.setStorage({
key: fileName,
data: res.savedFilePath,
})
//赋值给globaldata
self.globalData[fileName] = res.savedFilePath
},
fail(res) {
console.log(res)
}
})
}
})
}
})
},
播放:
pointAudioPlay: function (name){
innerAudioContext.src = app.globalData.home_btn
innerAudioContext.play()
},
很方便效果也很好!