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 实现。以下是详细步骤和代码示例:

实现方法

  1. 添加权限(仅 App 端需要):

    • manifest.jsonApp 模块配置 中勾选 Contacts(通讯录)
    • 对于 Android,还需在 manifest.jsonApp 权限配置 中添加 <uses-permission android:name="android.permission.READ_CONTACTS"/>
  2. 调用 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 进一步开发。
  • 测试时请使用真机,模拟器可能无法正常调用。

通过以上步骤即可实现联系人选择功能。

回到顶部