uni-app 抖音小程序获取手机号始终返回拒绝

uni-app 抖音小程序获取手机号始终返回拒绝

示例代码:

<button
class="mobile-but"
type="default"
open-type="getPhoneNumber"
@getphonenumber="getPhoneNumberHandler">
点击获取手机号
</button>

操作步骤:

  • 点击按钮获取手机号

预期结果:

  • 返回密文

实际结果:

  • 返回的错误信息:getPhoneNumber:fail auth deny

bug描述:

抖音小程序获取手机号,点同意了,还是返回拒绝。在微信小程序上是正常的。附件里有视频

返回的具体参数如下:

{
"type": "getphonenumber",
"timeStamp": 200490.5,
"target": {
    "id": "",
    "dataset": {},
    "offsetLeft": 35,
    "offsetTop": 0,
    "errMsg": "getPhoneNumber:fail auth deny"
},
"currentTarget": {
    "id": "",
    "dataset": {},
    "offsetLeft": 35,
    "offsetTop": 0
},
"detail": {
    "errMsg": "getPhoneNumber:fail auth deny"
},
"touches": [],
"changedTouches": []
}

附件:

项目信息 描述
产品分类 uniapp/小程序/字节跳动
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 11 家庭中文版
HBuilderX类型 正式
HBuilderX版本号 3.98
第三方开发者工具版本号 抖音开发者工具v4.17
基础库版本号 3.2.0.11
项目创建方式 HBuilderX

更多关于uni-app 抖音小程序获取手机号始终返回拒绝的实战教程也可以访问 https://www.itying.com/category-93-b0.html

33 回复

已经通过试运营期了

这是在模拟器里,我用抖音提供是示例代码(原生的)可以正常获取手机号

回复 敲代码: 原生代码可以 但是通过uniapp编译后的就获取不到 是这样吗?

刚录屏了,一会发你

回复 爱豆豆: 在模拟器里就获取不到

回复 爱豆豆: 当抖音官方提供的代码片段在模拟器就没问题

回复 敲代码: 你把弄个可以复现这个问题demo 发出来 或者将你的项目去除敏感页面后发出来 我试试

代码片段 登陆按钮点不点都可以 <template>
<view>
<button @tap=“login”>登录</button>
<button open-type=“getPhoneNumber” @getphonenumber=“getphonenumber”>获取手机号</button>
</view>
</template>

<script> export default { methods: { getphonenumber(e) { console.log(e) }, login() { uni.login({ success:(res) => { console.log(res) } }) } } } </script>

刚测试一下。新建的项目可以,在目前这个项目就不行,不知道啥原因

我在新建个页面试试

新建个页面也不行,奇怪了

回复 敲代码: 能发出来吗?去除一下敏感页面

回复 爱豆豆: 稍等一会,我看看能不能发。您先吃饭

回复 爱豆豆: 能加一下您微信吗?我把项目发您

回复 爱豆豆: 或者把您的邮箱发我,我把项目发您邮箱

回复 爱豆豆: 邮件发您了

你看我的 uniapp编译就可以正常获取

你这个代码片段发我一下

你看下 是可以获取到的 hbx版本: 3.99 抖音调试库版本:2.86.0.9

你把APPID改成测试号试一下 我感觉应该是你小程序没这个权限

回复 爱豆豆: 你用测似乎号可以获取吗?

回复 爱豆豆: 我这用测试号也不行

回复 敲代码: 是的

回复 敲代码: 你登陆这个开发者工具的号 绑定手机号了吗?

回复 爱豆豆: 可以了,多谢

回复 敲代码: 啥原因呢?是账号的问题吧?

回复 爱豆豆: 对是账号问题

@爱豆豆 这是抖音提供的原生代码片段,可以正常获取。用uniapp开发的,在抖音开发者工具里就不行

抖音小程序通过试运营需要多久

在 uni-app 开发抖音小程序时,获取用户手机号失败并始终返回拒绝,可能是由于以下几个原因导致的。以下是一些可能的原因和解决方法:

1. 权限配置问题

  • 原因: 抖音小程序获取手机号需要用户授权,如果用户拒绝授权,或者开发者未正确配置权限,可能会导致获取失败。
  • 解决方法:
    • 确保在 manifest.json 文件中正确配置了 getPhoneNumber 权限。
    "mp-douyin": {
      "permission": {
        "scope.userPhoneNumber": {
          "desc": "获取手机号"
        }
      }
    }
    
    • 在小程序的页面中,使用 button 组件并设置 open-type="getPhoneNumber" 来触发获取手机号的逻辑。

2. 用户拒绝授权

  • 原因: 用户在弹窗中选择了拒绝授权,导致获取手机号失败。
  • 解决方法:
    • 在用户拒绝授权后,可以引导用户重新授权。可以通过弹窗提示用户授权的重要性,并引导用户再次尝试。
    • 可以在 getPhoneNumber 的回调中处理用户拒绝的情况,并提示用户重新授权。

3. 回调函数处理不当

  • 原因: 在 getPhoneNumber 的回调函数中,没有正确处理授权结果,导致无法获取手机号。
  • 解决方法:
    • 确保在 getPhoneNumber 的回调函数中正确处理授权结果。以下是一个示例:
    <button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"></button>
    
    methods: {
      getPhoneNumber(e) {
        if (e.detail.errMsg === 'getPhoneNumber:ok') {
          // 用户同意授权,处理获取到的手机号
          const encryptedData = e.detail.encryptedData;
          const iv = e.detail.iv;
          // 将 encryptedData 和 iv 发送到服务器解密
        } else {
          // 用户拒绝授权或授权失败
          console.log('用户拒绝授权或授权失败');
        }
      }
    }
回到顶部