我想把获取手机号的代码,写在onLoad里面,可是总是报错: {errMsg: "authorize:fail 系统错误,错误码:-12001,invalid scope"}
onLoad(){this.requestPhoneNumberAuthorization();
},
methods: {
requestPhoneNumberAuthorization() {
// 检查用户授权状态
wx.getSetting({
success: (res) => {
if (!res.authSetting['scope.phoneNumber']) {
// 如果用户没有授权手机号,自动请求授权
wx.authorize({
scope: 'scope.phoneNumber',
success: () => {
// 请求成功,可以请求用户手机号
wx.getPhoneNumber({
success: (res) => {
this.decryptPhoneNumber(res);
},
fail: (error) => {
console.log("获取手机号失败:", error);
}
});
},
fail: (error) => {
console.log("用户拒绝授权:", error);
}
});
} else {
// 用户已经授权,可以直接获取手机号
wx.getPhoneNumber({
success: (res) => {
this.decryptPhoneNumber(res);
},
fail: (error) => {
console.log("获取手机号失败:", error);
}
});
}
},
fail: (error) => {
console.log("获取设置失败:", error);
}
});
},
这样写,总是报错:
用户拒绝授权: {errMsg: "authorize:fail 系统错误,错误码:-12001,invalid scope"}
出现不了让用户 授权或者拒绝 的界面,是怎么回事?是必须有按钮触发?还是我的代码有问题?谢谢!如果是按钮触发,有文档写着吗?文档链接是多少?谢谢
谢谢大佬的回复,老板把这个需求砍掉了。
必须用户点击才行
你这些api在哪里看的呀?目前没有scope.phoneNumber,也没有wx.getPhoneNumber这个API接口。
目前获取手机号只能是通过button组件点击触发:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html#%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B
必须按钮触发。详见官方文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html