更新记录

1.0.0(2026-04-16)

  • 支持 Android / iOS 系统联系人选择器
  • 支持 contact / phone / email 三种模式
  • 支持统一返回联系人、手机号、邮箱结构
  • 提供模板页和体验页,方便联调测试

平台兼容性

uni-app(4.75)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.75)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × ×

austin-contact

austin-contact 是一个面向 uni-app / uni-app x 的 App 轻量级系统联系人选择 UTS 插件,兼容 Android / iOS。 通过系统联系人选择器,让业务侧直接拿到用户主动选中的联系人、手机号或邮箱,并输出统一结构,适合做表单回填、CRM 录入、邀请好友、紧急联系人等场景。

点击试用插件

当前工程里的体验页包含:

  • 当前平台能力展示
  • 联系人模式选择
  • 手机号模式选择
  • 邮箱模式选择
  • 表单自动回填预览
  • 最近一次结果输出

功能

  • 支持 Android / iOS 系统联系人选择器
  • 支持 contact / phone / email 三种模式
  • 支持统一联系人返回结构
  • 支持手机号标准化
  • 支持直接用于表单回填、邀请、收件人选择等业务场景

适用场景

  • CRM 选择客户联系人
  • 报名表、收货页、邀请页自动回填手机号或邮箱
  • 选择紧急联系人
  • 企业信息采集、收件人选择
  • 用户主动从系统联系人中选择资料,而不是手动输入

manifest.json 配置

{
  "app-plus": {
    "distribute": {
      "ios": {
        "privacyDescription": {
          "NSContactsUsageDescription": "用于通过系统联系人选择器读取用户主动选中的联系人信息"
        }
      }
    }
  }
}

说明:

  • Android 当前主路径通常无需额外声明通讯录权限
  • iOS 建议补充 NSContactsUsageDescription

如果你的业务后续要稳定读取更多联系人详情,而不只是选择器返回字段,可以再按需补充 Android 通讯录读取权限方案。

API

getContactsPickerCapabilities()

返回当前平台能力:

  • supported
  • platform
  • supportsPickContact
  • supportsPickPhone
  • supportsPickEmail
  • supportsMultiple
  • requiresPermission
  • notes

pickContact(options)

拉起系统联系人选择器。

参数表:

参数 说明 类型 默认值 可选值
mode 选择模式 String contact contact / phone / email
multiple 是否多选,当前版本暂不支持 Boolean false true / false
normalizePhone 是否标准化手机号 Boolean true true / false
success 选择成功回调 Function - -
fail 选择失败回调 Function - -
complete 选择完成回调 Function - -

返回结果

联系人项

字段 说明 类型
id 联系人 ID String
displayName 展示名称 String
givenName String
familyName String
organization 公司 / 组织 String
phones 手机号数组 PickedPhoneItem[]
emails 邮箱数组 PickedEmailItem[]

手机号项

字段 说明 类型
label 标签,如 mobile / work String
value 原始手机号 String
normalizedValue 标准化后的手机号 String
selected 是否是本次选中的手机号 Boolean

邮箱项

字段 说明 类型
label 标签,如 home / work String
value 邮箱地址 String
selected 是否是本次选中的邮箱 Boolean

结果对象

字段 说明 类型
ok 是否成功 Boolean
platform 平台标识 String
mode 本次选择模式 String
multiple 是否多选 Boolean
contacts 联系人数组 PickedContactItem[]
count 联系人数 Number
errCode 错误码 Number
errMsg 错误信息 String

最小示例

import {
  pickContact,
  getContactsPickerCapabilities,
} from '@/uni_modules/austin-contact'

const capabilities = getContactsPickerCapabilities()
console.log('capabilities', capabilities)

pickContact({
  mode: 'phone',
  normalizePhone: true,
  success(res) {
    console.log('pick-success', res)
  },
  fail(res) {
    console.log('pick-fail', res)
  },
})

注意

  • 主打系统联系人选择,不读取全量通讯录
  • 暂不支持多选
  • phone / email 模式更适合直接做表单回填
  • Android / iOS 当前都会返回联系人姓名、公司、手机号、邮箱中的可用字段
  • 如业务主要依赖手机号或邮箱,优先使用 phone / email 模式,结果更直接、更稳定

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"NSContactsUsageDescription": "用于通过系统联系人选择器读取用户主动选中的联系人信息

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。