uniapp app如何调用手机选择联系人
在uniapp开发的APP中,如何实现调用手机系统自带的联系人选择功能?需要获取用户选择的联系人姓名和电话号码,求具体代码实现方案或相关插件推荐。
2 回复
在uniapp中,调用手机联系人需要使用plus.contacts.getAddressBook接口。首先在manifest.json中配置通讯录权限,然后调用API获取联系人列表。示例代码:
plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(book){
book.select(function(contact){
console.log(contact.displayName); // 获取联系人姓名
});
});
注意:需真机调试,且用户授权通讯录权限。
在 UniApp 中调用手机选择联系人,可以通过 uni.chooseContact() API 实现。以下是详细步骤和代码示例:
实现方法
-
添加权限(仅 App 端需要):
- 在
manifest.json的App 模块配置中勾选Contacts(通讯录)。 - 对于 Android,还需在
manifest.json的App 权限配置中添加<uses-permission android:name="android.permission.READ_CONTACTS"/>。
- 在
-
调用 API:
- 使用
uni.chooseContact()方法打开系统联系人列表,用户选择后返回联系人信息。
- 使用
代码示例
// 在页面方法中调用
chooseContact() {
uni.chooseContact({
success: (res) => {
console.log('联系人姓名:' + res.name);
console.log('电话号码:' + res.phoneNumber);
// 可获取其他字段如 thumbnailPath(头像路径)
},
fail: (err) => {
console.error('选择联系人失败:', err);
}
});
}
注意事项
- 平台差异:仅支持 App 端(Android/iOS),H5 和小程序不支持。
- 权限处理:首次调用时系统会弹窗请求通讯录权限,需用户授权。
- 返回字段:常见字段包括
name(姓名)、phoneNumber(手机号)等,具体参考 UniApp 文档。
扩展建议
- 如需处理多号码联系人,可结合
uni.getContact进一步开发。 - 测试时请使用真机,模拟器可能无法正常调用。
通过以上步骤即可实现联系人选择功能。

