Мы не можем получить собственный доступ к списку контактов, используя плагин Cordova - PullRequest
0 голосов
/ 28 марта 2019

Мы пытаемся получить собственный доступ к списку контактов телефона с помощью cordova-plugin-contacts (пробовали как устройства тестирования ios / android, так и эмуляторы!).

Мы перепробовали все темы вокругсеть, которую мы можем найти, и различные методы / учебные пособия, чтобы попытаться это сделать, но, похоже, ничего не работает.Мы просто получаем пустые экраны, поскольку .ts не удается.Мы попробовали из простых проектов, и проиграли на этом этапе!Мы понимаем, что cordova больше не поддерживает код из-за проблем безопасности, но мы понимаем, что люди все еще могут каким-то образом использовать код.

Наша структура: Ionic CLI 4.12.0

Angular CLI7.3.6

Cordova CLI 9.0.0

NodeJS 11.12.0

Другие пробовали: npm install @ ionic-native / contacts

У поставщиков:


import { Contacts } from '@ionic-native/contacts';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
    Contacts
  ],
  bootstrap: [AppComponent]
})

export class AppModule {}

Html:

<ion-header>
  <ion-toolbar>
    <ion-title>Contact</ion-title>
  </ion-toolbar>
</ion-header>

<ion-content padding>

  <ion-list>
    <ion-item *ngFor="let contact of contactsFound">

        <h3 style="padding-top: 5rem;">{{contact?.displayName}}</h3>

        <!--Recorro el numero de cada contacto-->
        <p *ngFor="let num of contact?.phoneNumbers">
          {{num.value}}
        </p>

    </ion-item>
  </ion-list>

</ion-content>

В .ts:

import { Component } from '@angular/core';
import { NavController, NavParams } from '@ionic/angular';

//Importo la libreria de contactos...
import { Contacts, ContactFieldType, IContactFindOptions} from "@ionic-native/contacts";

//Definimos el selector y los templates y estilos...
@Component({
  selector: 'app-contact',
  templateUrl: 'contact.page.html'
})

//Clase Principal de la pagina de Contactos...
export class ContactPage {

  ourtype: ContactFieldType[] = ["displayName"];
  contactsFound = [];

  constructor(public navCtrl: NavController, private contacts: Contacts){
    this.search('');
  }

  //Metodo para buscar un contacto con el metodo find();
  search(q){

    const option: IContactFindOptions = {
      filter: q
    }

    this.contacts.find(this.ourtype, option).then(cont => {
      this.contactsFound = cont
    })
  }

}

Мы попытались добавить оповещения, но все не сработали в коде ...это просто умирает!

1 Ответ

0 голосов
/ 28 марта 2019

Привет, Мэтт, слушайте событие готовности к платформе, как только оно будет запущено, только вы сможете получить доступ к собственным функциям, таким как камера контактов и т. Д.

Например:

this.platform.ready().then(() => {
    // access contact here  contact.find call 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...