wix-react-native-contacts
v1.1.0
Published
Wix React Native Contacts
Downloads
10
Readme
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)
import com.wix.reactnativecontacts.ReactNativeContacts; // <------ ADD ME
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new ReactNativeContacts()) // <------ ADD ME
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
......
}
- Add Contacts permission (in android/app/src/main/AndroidManifest.xml)
...
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
...
Usage
First make sure to requier the ContactsManager
like so:
var ContactsManager = React.NativeModules.ContactsManager;
getAuthorizationStatus (iOS only)
ContactsManager.getAuthorizationStatus((status) => {
this.setState({
authStatus: status,
authChecked: true
});
})
requestAuthorization (iOS only)
ContactsManager.requestAuthorization((status) => {
this.setState({ authStatus: status });
})
addNewContact
var newContact = {
firstName: "Artal",
middleName: "middle",
lastName: "Druk",
phoneNumbers: [{
label: ContactsManager.CreateContactMobilePhoneLabel,
number: "050-1234567",
}],
emailAddresses: [{
label: "my email label",
email: "[email protected]",
}],
}
ContactsManager.addNewContact(newContact, (error, contactID) => {
var alertTitle = error ? "Error" : "Success";
var alertMessage = error ? error : "Contact added. New contact ID: " + contactID;
this.showAlert(alertTitle, alertMessage);
})
getContactID
ContactsManager.getContactID("050-1234567", (error, contactID) => {
var alertTitle = error ? "Error" : "Success";
var alertMessage = error ? error : "Contact ID: " + contactID;
if (contactID === ContactsManager.UnknownContactID) {
alertMessage = "Contact not found";
}
this.showAlert(alertTitle, alertMessage);
})
full example
You can see a full working example here.