因小程序有一个留言反馈的功能需要获取用户的信息,所以需要进行用户授权操作。
在用户第一次进入小程序时,会弹窗提示用户是否授权,用户在此时能同意则很理想。但是如果拒绝了,那么就要再次授权。
假设用户拒绝了授权,用户进入留言界面时,则再次弹窗提示用户授权,否则不能使用该功能。可是我在liuyan.js页面的 onLoad: function (options) {} 中 调用 wx.authorize 接口没任何反应。代码如下
onLoad: function (options) {
var that = this
wx.login({
success: function (res) {
wx.getSetting({
success(setRes) {
// 判断是否已授权(用户进入时会判断是否已授权)
if (!setRes.authSetting[‘scope.userInfo’]) {
// 授权访问
wx.authorize({
scope: ‘scope.userInfo’,
success() {
// 用户已经同意小程序使用个人基本信息,后续调用 wx.getUserInfo 接口不会弹窗询问
wx.getUserInfo({
lang: “zh_CN”,
success: function (userRes) {
// 发起网络请求
wx.request({
url: ‘http://localhost:8080/fm93/xcx/user.action’,
data: {
code: res.code,
encryptedData: userRes.encryptedData,
iv: userRes.iv,
signature: userRes.signature
},
header: {
“Content-Type”: “application/x-www-form-urlencoded”
},
method: ‘POST’,
// 服务端回调
success: function (result) {
var sessionKey = result.data;
console.log("–sessionKey–" + sessionKey);
wx.setStorageSync(“session3rd”, sessionKey);//存储后台返回的3rdsession
}
})
}
})
},
fail: function () {
//用户拒绝授权
//
}
})
} else {
// 获取用户信息
console.log(“已授权”)
}
}
})
}
})
}