Contact Picker 支持情况
发布于 更新于
Contact Picker API 让页面通过用户代理呈现的选择器界面,请求用户从设备通讯录中挑选一个 或多个联系人条目,随后只分享站点请求过的、且用户已选中条目的字段——站点不会获得对通讯录的 常驻访问权限。规范只要求用户代理提供的界面满足其隐私与选择规则;并未规定必须采用任何特定的 原生或浏览器自绘 UI 实现方式。
浏览器与生态支持
Section titled “浏览器与生态支持”- 图例
- 支持
- 部分支持
- 需开启标志
- 不支持
- 未知
| 浏览器 / 平台 | 支持 | 版本 | 置信度 | 来源 | 备注 |
|---|---|---|---|---|---|
| Chrome (Desktop) | 不支持 | — | 高 | 来源 | 1 |
| Chrome (Android) | 支持 | 80 | 高 | 来源 | — |
| Edge (Desktop) | 不支持 | — | 高 | 来源 | 23 |
| Firefox (Desktop) | 不支持 | — | 高 | 来源 | 4 |
| Firefox (Android) | 不支持 | — | 高 | 来源 | 56 |
| Safari (macOS) | 不支持 | — | 高 | 来源 | 7 |
| Safari (iOS) | 需开启标志 | 14.5 | 高 | 来源 | 8 |
| Samsung Internet | 不支持 | removed in 22.0 | 高 | 来源 | 910 |
| WebView (Android) | 支持 | 80 | 高 | 来源 | 11 |
- browser-compat-data 未记录 Chrome 的支持。
- browser-compat-data 未记录 Edge 的支持。
- 由 browser-compat-data 镜像自 Chrome 的数据推导。
- 实现跟踪:https://bugzil.la/1756767。
- 实现跟踪:https://bugzil.la/1756767。
- 由 browser-compat-data 镜像自 Firefox 的数据推导。
- browser-compat-data 未记录 Safari 的支持。
- 需开启 `Contact Picker API` 偏好设置。
- Samsung Internet 自 14.0 起支持,22.0 中移除。
- 该 API 虽已暴露,但打开联系人选择器时会失败。
- 由 browser-compat-data 镜像自 Chrome Android 的数据推导。
async function pickContacts() { const props = ['name', 'email', 'tel']; const opts = { multiple: true }; return navigator.contacts.select(props, opts);}检测支持情况并提供回退
Section titled “检测支持情况并提供回退”async function shareContacts(props, opts) { if (!('contacts' in navigator && 'ContactsManager' in window)) { // 此处不支持——回退到手动联系人录入表单。 return null; } return navigator.contacts.select(props, opts);}- 在调用
select()之前,先用'contacts' in navigator && 'ContactsManager' in window做特性检测——根据上方的兼容性数据,目前为 Android 版 Chrome 支持,iOS 版 Safari 仅在开启实验性标志后才可用。 - 只能在安全的顶层上下文中,由真实的用户手势触发
select()。 - 为每一个不支持该功能的浏览器准备好手动录入的回退界面。
- 不要在产品文案中把该选择器界面描述为“原生”——规范只要求提供用户代理呈现的界面, 并不要求它是平台原生控件。
- Contact Picker API 参考 —— 完整的
select()语法、前置条件与错误处理。 - Screen Wake Lock 支持情况 —— 本分区中另一个设备能力 兼容性页面。
← 返回 兼容性 浏览器。