React Native联系人组件

作者: forrest23 | 来源:发表于2017-11-20 17:53 被阅读305次

    本文原创首发于公众号:ReactNative开发圈,转载需注明出处。

    React Native通讯录联系人组件,名叫:react-native-contacts,可以用来增加、读取、修改、删除、搜索手机通讯录中的联系人信息,兼容IOS和安卓双平台。

    安装

    npm install react-native-contacts
    react-native link react-native-contacts
    

    iOS权限配置

    需要增加读取联系人的权限,在Info.plist中增加一个key:"Privacy - Contacts Usage Description”。


    image.png

    Android权限配置

    在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" />
    

    支持的方法

    image.png

    示例

    增加联系人

    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开发圈

    image.png

    相关文章

      网友评论

        本文标题:React Native联系人组件

        本文链接:https://www.haomeiwen.com/subject/uwtbvxtx.html