本文原创首发于公众号:ReactNative开发圈,转载需注明出处。
React Native通讯录联系人组件,名叫:react-native-contacts,可以用来增加、读取、修改、删除、搜索手机通讯录中的联系人信息,兼容IOS和安卓双平台。
npm install react-native-contacts
react-native link react-native-contacts
需要增加读取联系人的权限,在Info.plist中增加一个key:"Privacy - Contacts Usage Description”。
在android/app/src/main/AndroidManifest.xml中增加以下权限:
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
var newPerson = {
emailAddresses: [{
label: "work",
email: "mrniet@example.com",
}],
familyName: "Nietzsche",
givenName: "Friedrich",
}
Contacts.addContact(newPerson, (err) => { /*...*/ })
Contacts.getAll( (err, contacts) => {
//update the first record
let someRecord = contacts[0]
someRecord.emailAddresses.push({
label: "junk",
email: "mrniet+junkmail@test.com",
})
Contacts.updateContact(someRecord, (err) => { /*...*/ })
//delete the second record
Contacts.deleteContact(contacts[1], (err) => { /*...*/ })
})
var Contacts = require('react-native-contacts')
Contacts.getAll((err, contacts) => {
if(err === 'denied'){
// error
} else {
// contacts returned in []
}
})
如果联系人比较多的话,getAll方法会比较慢,作者建议先获取好所有联系人,存储在本地数据库中。在需要用的时候,直接读取本地数据库,这样速度比较快。
var Contacts = require('react-native-contacts')
Contacts.getContactsMatchingString("filter", (err, contacts) => {
if(err === 'denied'){
// x.x
} else {
// Contains only contacts matching "filter"
console.log(contacts)
}
})
详细的源码和使用说明请访问GitHub:https://github.com/rt2zz/react-native-contacts
本文分享自 ReactNative开发圈 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!