更新记录
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 模式,结果更直接、更稳定