Socket
Book a DemoInstallSign in
Socket

wix-react-native-contacts

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wix-react-native-contacts

Wix React Native Contacts

latest
Source
npmnpm
Version
1.1.0
Version published
Maintainers
1
Created
Source

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: "someone@wix.com",
      }],
    }

    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.

FAQs

Package last updated on 11 Dec 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts