https://developers.weixin.qq.com/miniprogram/dev/component/button.html<template>
<view>
<button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">获取手机号</button>
</view>
</template>
<script setup>
import Taro from '@tarojs/taro'
const onGetPhoneNumber = async (event) => {
try {
if (event.detail.errMsg === 'getPhoneNumber:ok') {
// 用户同意授权,获取加密的手机号和初始向量
const encryptedData = event.detail.encryptedData;
const iv = event.detail.iv;
// 这里应该将encryptedData和iv发送到后端服务器进行解密
// 同时可能需要wx.login获取的code来辅助解密
// 注意:实际发送请求和解密过程应放在这里
console.log('加密的手机号:', encryptedData, '初始向量:', iv);
// 假设你有发送请求的方法 sendToServer,这里仅为示例
// await sendToServer({ encryptedData, iv });
} else {
console.error('获取手机号失败', event.detail.errMsg);
setting()
}
} catch (error) {
console.error('处理获取手机号过程中发生错误', error);
}
};
function setting() {
Taro.showModal({
title: '提示',
content: '为了提供更好的服务,我们需要获取您的手机号,请授权允许。',
confirmText: '去授权',
success: (res) => {
if (res.confirm) {
Taro.openSetting({
success: (res) => {
if (res.authSetting['scope.phoneNumber']) {
// 用户已授权,可以再次尝试获取手机号
this.getPhoneNumber();
} else {
// 用户仍然拒绝授权
Taro.showToast({ title: '您已拒绝授权,部分功能可能无法使用', icon: 'none' });
}
},
});
}
},
});
}
</script>
报啥错发一下,是不是没有设置隐私协议