uni-app快手小程序无法获取手机号

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app快手小程序无法获取手机号

开发环境 版本号 项目创建方式
Windows win10 22h2 CLI

操作步骤:

<template>  
<button  open-type="getPhoneNumber" [@getphonenumber](/user/getphonenumber)="getPhoneNumber">确定</button>
</template>
<script>
export default {
name: "authPop",
methods: {
getPhoneNumber(e) {
console.log('getPhoneNumber',e)  
}
}
}
</script>

3 回复

我在HBX与CLI相同版本号下均能正常取得手机号,请参考我的代码并检查自己的代码是否编写是否有误: <template>
<view class="index">
<text>index page </text>
<button open-type=“getPhoneNumber” @getphonenumber=“getPhonenumber”>to PP</button>
</view>
</template>

<script lang="ts"> export default { methods: { getPhonenumber: (e: any) => { console.log(e) }, }, } </script>

解决了吗?

在 uni-app 开发中,如果你想在快手小程序中获取用户的手机号,可能会遇到一些限制或问题。以下是一些可能的原因和解决方案:

1. 快手小程序的权限限制

快手小程序获取用户手机号需要用户主动授权,且需要经过平台的审核。如果小程序未通过审核或用户未授权,则无法获取手机号。

解决方案:

  • 确保小程序已经通过快手平台的审核,并且具备获取手机号的权限。
  • 在用户触发获取手机号的操作时,使用 tt.getPhoneNumber API 来获取手机号。

2. 未正确使用 API

在快手小程序中,获取手机号的 API 是 tt.getPhoneNumber,而不是微信小程序中的 wx.getPhoneNumber

解决方案: 使用以下代码示例来获取手机号:

tt.getPhoneNumber({
  success(res) {
    console.log('获取手机号成功', res);
    // 这里可以处理获取到的手机号
  },
  fail(err) {
    console.log('获取手机号失败', err);
  }
});

3. 未配置小程序的权限

app.jsonmanifest.json 中,需要配置相应的权限,以便小程序能够获取手机号。

解决方案:manifest.json 中,确保已经配置了 tt.getPhoneNumber 的权限:

"mp-kuaishou": {
  "appid": "your-app-id",
  "permission": {
    "scope.userPhoneNumber": {
      "desc": "获取用户手机号"
    }
  }
}

4. 用户未授权

用户可能在首次使用时拒绝了授权请求,导致无法获取手机号。

解决方案: 在用户拒绝授权后,可以通过引导用户手动开启权限,或者使用 tt.authorize 重新请求授权。

tt.authorize({
  scope: 'scope.userPhoneNumber',
  success(res) {
    console.log('授权成功', res);
    // 再次尝试获取手机号
    tt.getPhoneNumber({
      success(res) {
        console.log('获取手机号成功', res);
      },
      fail(err) {
        console.log('获取手机号失败', err);
      }
    });
  },
  fail(err) {
    console.log('授权失败', err);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!