大家好,我以前用mpvue做的微信小程序。现在我面临更新,但是微信废弃了原来的接口。使用了新的接口getUserProfile;我修改我程序就始终不成功,哪位大神帮我看看到底怎么修改;
以下为代码:
点击是提审登录弹窗html代码
<float ref="login">
<div class="dl_login ug">
<div class="text">为了更好的体验功能,请登录!</div>
<button open-type="getUserInfo" @getuserinfo="login" class="btn_ok">好的</button>
</div>
</float>
js代码
//登录
async tryLogin(force = true){
console.log("走tryLogin了吗?")
return new Promise(function(resolve, reject){
wx.getSetting({
success: function (res) {
if (res.authSetting['scope.userInfo']) {
wx.getUserInfo({
success: async function (res) {
console.log("userinfo:",res)
resolve(await root.login(res.userInfo))
}
});
} else if(force){
root.$refs.login.show()
reject()
}
}
});
})
},
async login(userData) {
return new Promise(function(resolve, reject){
wx.login({
success: async (res) => {
const re = await rime.Main.auth.force(res.code)
if(!!!userData.nickName) userData = userData.mp.detail.userInfo
userData.openid = re
userData.parent = wx.getLaunchOptionsSync().query.uid || 0
const ret = await rime.Main.login.force(userData)
Object.assign(userData, ret.user)
userData.score = userData.score || 0
wx.setStorageSync('userInfo', userData);
root.userInfo = userData
root.$refs.login.hide()
resolve(userData)
}
})
})
},
原来我点击“”好的“”按钮就弹出来微信登录授权
现在不弹窗授权,也能登录只是后端保存的用户信息来登录了。但是用户昵称显示“微信用户”,头像也出不来
我把新的方法是替换了也不行
//登录
async tryLogin(force = true){
console.log("走tryLogin了吗?")
return new Promise(function(resolve, reject){
wx.getSetting({
success: function (res) {
if (res.authSetting['scope.userInfo']) {
//替换的新接口开始、、、、、、、、、
wx.getUserProfile({
desc: '为了更好的体验请先登录!', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: async function (res) {
console.log("新接口得到的数据?:",res)
resolve(await root.login(res.userInfo))
}
})
//替换的新接口结束、、、、、、、、、
} else if(force){
root.$refs.login.show()
reject()
}
}
});
})
},
async login(userData) {
return new Promise(function(resolve, reject){
wx.login({
success: async (res) => {
const re = await rime.Main.auth.force(res.code)
if(!!!userData.nickName) userData = userData.mp.detail.userInfo
userData.openid = re
userData.parent = wx.getLaunchOptionsSync().query.uid || 0
const ret = await rime.Main.login.force(userData)
Object.assign(userData, ret.user)
userData.score = userData.score || 0
wx.setStorageSync('userInfo', userData);
root.userInfo = userData
root.$refs.login.hide()
resolve(userData)
}
})
})
},
请大家帮忙我哪里搞错了。是不是那个html里的按钮写的不对啊!