Поиск плагина для собственных контактов ionic 2 не завершается

Я пытаюсь запросить все контакты, используя ionic 2 native. Я получил следующую ошибку при запуске команды ionic serve. Как я могу решить эту проблему, если кто-нибудь знает, дайте мне знать, пожалуйста. Спасибо

Typescript Error
Property 'find' does not exist on type 'typeof Contacts'.

дом.тс

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Contacts, Contact, ContactField, ContactName } from '@ionic-native/contacts';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {

  }
  testFun(){
    Contacts.find(['*']).then((contacts)=>{
      alert(JSON.stringify(contacts[0]));
    })
  }
}

home.html

<ion-header>
    <ion-navbar>
        <ion-title>
            Ionic Blank
        </ion-title>
    </ion-navbar>
</ion-header>

<ion-content padding>
    <button ion-button full (click)="testFun()">Get Contacts</button>
</ion-content>

Изображение ошибкивведите здесь описание изображения

исходный кодрепозиторий Git для моего проекта


person cfprabhu    schedule 24.04.2017    source источник


Ответы (2)


Начиная с Ionic 3.x.x, способ использования собственного плагина немного отличается от Ionic 2.x.x.

  1. Сначала вам нужно добавить Contact в свой конструктор
  2. Вам нужно добавить провайдеров Contact в свой @Component

Таким образом, ваш home.ts должен выглядеть так:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Contacts, Contact, ContactField, ContactName } from '@ionic-native/contacts';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html',
  providers: [Contacts]
})
export class HomePage {

  constructor(public navCtrl: NavController, private contacts: Contacts) {

  }

  testFun(){
    this.contacts.find(['*']).then((contacts)=>{
      alert(JSON.stringify(contacts[0]));
    })
  }
}

Дополнительные примеры использования см. в официальном документе для документа Ionic 3.x NATIVE здесь http://ionicframework.com/docs/native/contacts/

person TriDiamond    schedule 24.04.2017
comment
Я попробовал ваше решение, но не повезло, но у меня такая же проблема. - person cfprabhu; 24.04.2017
comment
пожалуйста, посмотрите мой код github.com/cfprabhu21/ionic2Native-contacts - person cfprabhu; 24.04.2017
comment
Извините, я неправильно написал раньше, я отредактировал свой ответ, используйте this.contacts.find() вместо contact.find() - person TriDiamond; 24.04.2017
comment
мы также можем добавить провайдеров в файл app.module.ts вместо файла pages .ts. - person cfprabhu; 24.04.2017

Вы пробовали это?

Contacts.prototype.find(['*'])
            .then((contacts)=>{
                alert(JSON.stringify(contacts[0]));
            })
            .catch((err) => {
                alert('Error ' + err);
});
person Abel Mescua    schedule 17.04.2018