引言

本文通过两种方式,知道号码时不知道号码时两种方式来调起,毕竟也可能存在前后端不知道号码的时候嘛~

知道号码时调起

<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' });
    }
  }
最后修改:2025 年 08 月 25 日
如果觉得我的文章对你有用,请随意赞赏