Skip to content

showWxPhone

获取微信手机号,仅支持微信小程序端。

前置依赖

依赖参数

参数名类型说明
deps.detectEnvironment() => 'h5' | 'miniapp' | 'app' | 'unknown'检测环境函数(可选)
deps.errorConsole['error']错误输出

环境要求

  • 微信小程序: 仅支持微信小程序端
  • 注意: H5 和 App 端不支持,需要使用其他方式获取手机号

函数签名

typescript
function showWxPhone(
  request?: PhoneRequest,
  deps: ShowPhoneDeps
): Promise<PhoneResult>

interface ShowPhoneDeps {
  detectEnvironment?: () => 'h5' | 'miniapp' | 'app' | 'unknown'
  error: Console['error']
}

interface PhoneRequest {
  eventDetail?: unknown
  rawEvent?: unknown
  code?: string
  encryptedData?: string
  iv?: string
  cloudID?: string
}

interface PhoneResult {
  errMsg?: string
  code?: string
  encryptedData?: string
  iv?: string
  phoneNumber?: string
  purePhoneNumber?: string
  countryCode?: string
  cloudID?: string
  raw?: unknown
}

参数

参数名类型必填默认值说明
requestPhoneRequest{}手机号请求参数
request.eventDetailunknown-<button open-type="getPhoneNumber">@getphonenumber 事件中获取的 event.detail
depsShowPhoneDeps-依赖注入对象

返回值

类型说明
Promise<PhoneResult>Promise,成功时返回手机号信息,包含 code、encryptedData、iv 等

工作原理

  1. 环境检测:检查当前是否为微信小程序环境
  2. 参数处理:从 eventDetail 中提取 code、encryptedData、iv 等信息
  3. 返回结果:返回包含加密手机号信息的对象
  4. 后端解密:开发者需要将 encryptedData 和 iv 发送到后端进行解密获取真实手机号

使用方式:需要在模板中使用 <button open-type="getPhoneNumber" @getphonenumber="handleGetPhone">,然后将事件对象传递给此函数。

注意:H5 和 App 端不支持此功能,会直接返回错误提示。