无法从电话的联系簿中获取本机应用程序中的联系人

时间:2017-09-28 12:04:25

标签: react-native plugins react-native-android

我试过了

  

纱线添加反应原生接触

插件并按照此链接中提到的所有步骤进行操作

  

https://github.com/rt2zz/react-native-contacts

但是给出错误

  

undefined不是对象(评估Contacts.getAll)。

有没有其他方法可以从电话簿中取出联系人?请告诉我。

谢谢

2 个答案:

答案 0 :(得分:3)

  

STEP-1。纱线添加react-native-contacts --save

     

STEP-2。 react-native link react-native-contacts

     

STEP_3。在上述文件中手动添加以下代码:

<强>的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" />

<强> MainApplication.java

import com.rt2zz.reactnativecontacts.ReactNativeContacts; //import this package

protected List<ReactPackage> getPackages() {
      mCallbackManager = new CallbackManager.Factory().create();
      return Arrays.<ReactPackage>asList(
      new ReactNativeContacts()  // Add this
   );
 }

<强>机器人/ settings.gradle

include ':react-native-contacts'
project(':react-native-contacts').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-contacts/android')

<强>机器人/应用/的build.gradle 在依赖项块中添加: -

 compile project(':react-native-contacts')

注意: - 如果您不使用纱线,也可以使用 npm 进行安装 例如: -

  1. npm install react-native-contacts
  2. react-native link react-native-contacts

答案 1 :(得分:0)

有一个名为“ react-native-contacts-wrapper”的npm软件包,可以很好地完成这项工作。

您可以像这样将其添加到您的应用程序中

import ContactsWrapper from 'react-native-contacts-wrapper';

onContactSelect(){
    ContactsWrapper.getContact()
    .then((contact) => {
        this.setState({
            importingContactInfo:true,
            guest:contact.name,
            email:contact.email,
            phone:contact.phone
        });
    })
    .catch((error) => {
        console.log("ERROR CODE: ", error.code);
        console.log("ERROR MESSAGE: ", error.message);
    });
}