引言
本文通过两种方式,知道号码时
和不知道号码时
两种方式来调起,毕竟也可能存在前后端不知道号码的时候嘛~
知道号码时调起
<view bindtap="callPhone" data-phone="19811111111">
点击拨打:19811111111
</view>
<script>
Page({
callPhone(e) {
const phoneNumber = e.currentTarget.dataset.phone;
wx.makePhoneCall({
phoneNumber: phoneNumber,
success: () => {
console.log("拨号成功");
},
fail: (err) => {
console.error("拨号失败", err);
},
});
},
});
</script>
不知道号码时调起
<button open-type="getPhoneNumber" bindgetphonenumber="handlePhoneNumber">
获取手机号
</button>
handlePhoneNumber(e) {
// 判断是不是点击了允许
if (e.detail.errMsg === 'getPhoneNumber:ok') {
const encryptedData = e.detail.encryptedData;
const iv = e.detail.iv;
// 将 encryptedData 和 iv 发送到你的服务器
wx.request({
url: 'https://your-server.com/api/getPhoneNumber', // 你的后端接口
method: 'POST',
data: {
encryptedData: encryptedData,
iv: iv
},
success: (res) => {
if (res.data.success) {
// 成功获取手机号
wx.showToast({ title: '手机号获取成功' });
} else {
wx.showToast({ title: '获取失败', icon: 'none' });
}
},
fail: (err) => {
console.error('请求失败:', err);
wx.showToast({ title: '网络错误', icon: 'none' });
}
});
} else if (e.detail.errMsg === 'getPhoneNumber:fail user deny') {
// 用户拒绝授权
wx.showToast({ title: '您拒绝了授权', icon: 'none' });
} else {
// 其他错误
wx.showToast({ title: '获取失败', icon: 'none' });
}
}