You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何获取联系人的第一个手机号(react-native-contacts-wrapper)

解决react-native-contacts-wrapper获取联系人第一个号码的问题

react-native-contacts-wrapper 的 getContact() 方法在联系人存在多个号码时,返回的 phone 字段是数组类型,而非单个字符串。你当前直接访问 pNumber.phone 拿到的是数组的最后一个(或第二个)元素,要获取第一个号码,得直接取数组的第一个索引。

修改后的代码如下:

...
import ContactsWrapper from "react-native-contacts-wrapper"

const ContactScreen = () => {
...
  (async () => {
    try {
      const contact = await ContactsWrapper.getContact();  
      // 先打印整个contact对象,确认phone字段的结构
      console.log('完整联系人数据:', contact);

      // 根据实际结构取第一个号码
      let firstPhoneNumber;
      if (Array.isArray(contact.phone)) {
        // 如果phone是字符串数组,直接取第一个元素
        firstPhoneNumber = contact.phone[0];
        // 如果phone是带number字段的对象数组,用下面这行替换上面的
        // firstPhoneNumber = contact.phone[0].number;
      } else {
        // 只有单个号码时直接取值
        firstPhoneNumber = contact.phone;
      }

      console.log('第一个号码:', firstPhoneNumber);
    } catch (error) {
      console.log(error);
    }
  })() 
}
...
};

建议先打印完整的 contact 对象,确认 phone 的具体结构——有些情况下它是字符串数组,有些是包含 number、type 等属性的对象数组,根据实际结构调整取值逻辑即可。

内容的提问来源于stack exchange,提问作者Anjali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:00:02