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
相关产品推荐
相关产品推荐

