需求:打开页面,判断用户是否登录,未登录的话,自定义弹框提醒用户登录,已登录的话,展示用户信息
1: wxml 里面 自定义弹框
<view class="login" wx:if="{{!hasUserInfoStatus}}" catchtouchmove='true'> <view class="mask"></view> <view class="d-login-popup"> <text class='d-login-popup-text'>微信手机号授权</text> <image class='d-login-popup-img' src='../../../../assets/images/d_login_img.png'></image> <text class='d-login-popup-text'>允许登录优蓝招聘</text> <button class='cancel' bindtap='cancelUserinfo'>取消</button> <button class='sure' open-type="getUserInfo" bindgetuserinfo="getUserInfo">允许</button> </view> </view>
2: data 里面 hasUserInfoStatus 变量 表示是否显示自定义弹框
data: {
hasUserInfoStatus: true,
}
3: onshow 里面判断用户是否登录。已登录,自定义弹框隐藏。未登录,自定义弹框显示,用户通过点击按钮,去触发 授权弹框显示
onShow() {
wx.login({
success: res => {
console.log('login', res)
this.getInfo(res.code);
}
});
},
getInfo: function (code) {
let _self = this;
wx.request({
url: api + '/api/miniProgramController/decodeUserInfo?code=' + code,
header: {
'content-type': 'application/json'
},
success: function (res) {
let openid = res.data.openid
let unionid = res.data.unionid
_self.setData({
openId: openid
})
app.globalData.openId = openid
app.globalData.unionId = unionid
wx.request({
url: api + '/rest/v1/wxLogin/isLogin/' + openid,
data: {},
header: {
'content-type': 'application/json'
},
method: 'POST',
success: function (suc) {
if (suc.data.success == true) { // 已登录
app.globalData.hasUserInfoStatus = true;
_self.setData({
hasUserInfoStatus: true
})
if (suc.data.data !== '') {
app.globalData.ylUserId = suc.data.data
}
_self.getComInfo()
} else { // 未登录
app.globalData.hasUserInfoStatus = false;
_self.setData({
hasUserInfoStatus: false
})
app.globalData.ylUserId = ''
}
}
})
}
})
},
4: 自定义弹框显示,用户点击 允许 按钮,触发 getUserInfo 函数, 点击 取消 按钮,触发 cancelUserinfo 函数
getUserInfo: function () {
let _self = this;
wx.getSetting({ // 获取用户已经授权的权限
success(res) {
console.log(res)
if (res.authSetting['scope.userInfo']) { // 点击了 ‘允许’按钮
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success: function (res) { }
})
wx.navigateTo({
url: '/pages/newLogin/newLogin?formUser=true' // 跳转到新页面
})
} else { // 点击了 ‘拒绝’按钮
wx.switchTab({
url: '/pages/index/index',
})
}
}
})
},
cancelUserinfo(){
wx.switchTab({
url: '/pages/index/index', // 跳转到首页
})
},