React Native Contacts
A react native module to allow access to user contacts on a mobile device.
Supports both iOS and Android. The iOS version uses the AddressBook API or the new Contacts API on iOS>=9.
API
getAuthorizationStatus
(iOS only)
Retrieves the current authorization status to access contact data. Based upon the access, the application could display or hide its UI elements that would access any Contacts API Callback Returns the authorization status. The value is from the ContactsManagerAuthorizationStatus enum
requestAuthorization
(iOS only)
Request access to the user's contacts. Users are able to grant or deny access to contact data on a per-application basis. The user will only be prompted the first time access is requested; Callback Returns the authorization status. The value is from the ContactsManagerAuthorizationStatus enum.
getContactID
Retrieves the contact ID of a contact with the requested phone number. If there is more than one contact with this number, the first one will be retrieved. Callback Returns with an error message (if an error occured) and the contactID. In case of a error, contactID value will be kUnknownContactID
addNewContact
Adds a new contact to the user's contacts. Callback Returns with an error message (if an error occured) and the contactID. In case of a error, contactID value will be kUnknownContactID
Installation iOS
- Install using npm:
npm install wix-react-native-contacts
- Link the library using the following instructions: https://facebook.github.io/react-native/docs/linking-libraries-ios.html#content
- Add the frameworks to your project (under the info tab):
Contacts.framework
,AddressBook.framework
Installation Android
- Install using npm:
npm install wix-react-native-contacts
- In
android/setting.gradle
...include ':wix-react-native-contacts'project(':wix-react-native-contacts').projectDir = new File(settingsDir, '../node_modules/wix-react-native-contacts/android')
- In
android/app/build.gradle
...dependencies { ... compile project(':wix-react-native-contacts')}
- Register module (in android/app/src/main/java/[your-app-namespace]/MainActivity.java)
// <------ ADD ME
- Add Contacts permission (in android/app/src/main/AndroidManifest.xml)
... ...
Usage
First make sure to requier the ContactsManager
like so:
var ContactsManager = ReactNativeModulesContactsManager;
getAuthorizationStatus (iOS only)
ContactsManager
requestAuthorization (iOS only)
ContactsManager
addNewContact
var newContact = firstName: "Artal" middleName: "middle" lastName: "Druk" phoneNumbers: label: ContactsManagerCreateContactMobilePhoneLabel number: "050-1234567" emailAddresses: label: "my email label" email: "someone@wix.com" ContactsManager
getContactID
ContactsManager
full example
You can see a full working example here.