微信小程序 是否开启原生获取手机号权限为什么会是false

在微信小程序中,可以使用 wx.getSetting 获取用户授权信息,包括是否开启了原生获取手机号权限。当 wx.getSetting 返回的结果中的 errMsggetSetting:ok 时,可以通过 res.authSetting['scope.phoneNumber'] 来判断是否开启了原生获取手机号权限。

如果 res.authSetting['scope.phoneNumber'] 的值为 false,则表示用户未开启原生获取手机号权限。可能的原因包括:

  1. 用户在微信设置中主动关闭了获取手机号权限;
  2. 用户曾经拒绝过获取手机号权限,并选择了不再提示;
  3. 用户在微信小程序进入时未授权获取手机号权限。

为了正确获取手机号,开发者可以在合适的时机使用 wx.authorize 引导用户开启获取手机号权限,示例代码如下:

wx.getSetting({
  success: (res) => {
    if (res.authSetting['scope.phoneNumber']) {
      // 已经授权,可以直接调用 wx.getUserInfo 获取手机号
    } else if (res.authSetting['scope.phoneNumber'] === false) {
      wx.showModal({
        title: '提示',
        content: '未授权获取手机号,是否前往设置打开?',
        success: (res) => {
          if (res.confirm) {
            wx.openSetting();
          }
        }
      });
    } else {
      // 第一次进入小程序,尚未授权,可以引导用户授权获取手机号
      wx.authorize({
        scope: 'scope.phoneNumber',
        success: () => {
          // 用户允许授权,可以调用 wx.getUserInfo 获取手机号
        },
        fail: () => {
          // 用户拒绝授权,可以向用户说明需要获取手机号的原因,并提供再次授权的机会
        }
      });
    }
  }
});

请注意,为了保护用户隐私,微信只提供了获取用户手机号的接口,但并未提供获取用户微信号的接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值