收藏
回答

VUE3,H5页面获取用户手机号,获取不到?

下面是代码,获取不到,有没有又类似经验大大佬看下,是否支持在H5页面获取微信用户的手机号,有没有类似的代码或给看下下面的代码


// 初始化微信 JS-SDK

async function initWechatJSAPI() {

  try {

    const data = await getWechatSignature({ url: window.location.href.split('#')[0] })

    if (!data) {

      console.error('获取微信签名数据为空')

      ElMessage.error('获取微信签名数据失败,请刷新重试')

    }


    console.error('获取微信签名数据为空',data)

    ElMessage.error('获取微信签名数据成功1',data)

   

    ElMessage.error('获取微信签名数据成功2',data.appId+data.timestamp+data.nonceStr+data.signature)

    wx.config({

      debug: false, // 关闭调试模式

      appId: data.appId, // 公众号的唯一标识

      timestamp: data.timestamp, // 生成签名的时间戳

      nonceStr: data.nonceStr, // 生成签名的随机串

      signature: data.signature, // 签名

      jsApiList: ['getPhoneNumber'], // 需要使用的JS接口列表

    })


    return new Promise((resolve, reject) => {

      wx.ready(() => {

        console.log('微信JS-SDK初始化成功')

        ElMessage.info('微信JS-SDK初始化成功')

        resolve() // 初始化成功,resolve

      })


      wx.error((err) => {

        console.error('微信JS-SDK初始化失败', err)

        ElMessage.error('初始化微信JS-SDK失败,请刷新重试1', err)

        reject(err) // 初始化失败,reject

      })

    })

  } catch (error) {

    console.error('初始化微信 JS-SDK 失败:', error)

    ElMessage.error('初始化微信JS-SDK失败,请刷新重试2', err)

    throw error // 抛出错误,便于上层捕获

  }

}


// 获取用户手机号

async function getWechatPhoneNumber() {

  try {

    await initWechatJSAPI() // 确保微信JS-SDK初始化成功

    return new Promise((resolve, reject) => {

      ElMessage.error('获取用户手机号1')

       wx.getPhoneNumber({

        success: async (res) => {

          ElMessage.error('获取用户手机号2', res)

          const { encryptedData, iv } = res

          try {

            const { phoneNumber } = await decryptPhoneNumber({ encryptedData, iv })

            ElMessage.error('获取用户手机号3', res)

            resolve(phoneNumber)

          } catch (error) {

            console.error('解密手机号失败1:', error)

            ElMessage.error('解密手机号失败,请重试1', error)

            reject(error)

          }

        },

        fail: (err) => {

          console.error('获取手机号权限失败:', err)

          ElMessage.warning('获取手机号失败,请检查授权', err)

          reject(err)

        },

      })

    })

  } catch (error) {

    console.error('获取手机号失败2:', error)

    ElMessage.error('获取手机号失败,请刷新重试2', error)

  }

}



回答关注问题邀请回答
收藏

3 个回答

  • Mr.Zhao
    Mr.Zhao
    2025-05-09

    哪个误人子弟的AI回答的代码啊。你用vue4、vue5都不行,h5没有获取手机号的api

    2025-05-09
    有用
    回复 4
  • sun
    sun
    发表于小程序端
    2025-05-09

    都没有在h5页面获取用户手机号的接口啊。你这代码又是从ai那里抄过来的?

    2025-05-09
    有用
    回复 4
  • 智能回答 智能回答 该问答由AI生成
    2025-05-09
    有用
登录 后发表内容