代码之家  ›  专栏  ›  技术社区  ›  Pavan Alapati

如何在ionic native[关闭]中打开联系人

  •  0
  • Pavan Alapati  · 技术社区  · 7 年前

    我的要求是使用ionic native打开本机联系人。我在google上搜索了一下,但找不到正确的答案

    我们用过这个 ionic Native contacts plugin

    获取所有联系人:

    this.platform.ready().then(() => {
          var opts = {   
             filter : "M",                                
             multiple: true,        
             hasPhoneNumber:true,                             
             fields:  [ 'displayName', 'name' ]
           };
           contacts.find([ 'displayName', 'name' ],opts).then((contacts) => {
             console.log(contacts);
            this.contactlist=contacts;
          }, (error) => {
            console.log(error);
          })
       })
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   dlcardozo    7 年前

    但请记住,在Ionic中,如果要使用本机API,必须首先等待 platform.ready() 此事件将通知所有内容都已加载并且可以使用。

    import { Platform } from 'ionic-angular';
    import { Contacts, Contact, ContactField, ContactName } from '@ionic-native/contacts';
    
    constructor(private contacts: Contacts, private plt: Platform) {   
       this.plt.ready().then((readySource) => {
          console.log('Platform ready from', readySource);
          // Platform now ready, execute any required native code
          this.initContacts();
        });
    }
    
    initContacts(): void {
       let contact: Contact = this.contacts.create();
    
       contact.name = new ContactName(null, 'Smith', 'John');
       contact.phoneNumbers = [new ContactField('mobile', '6471234567')];
       contact.save().then(
         () => console.log('Contact saved!', contact),
         (error: any) => console.error('Error saving contact.', error)
       );
    
       // If you want to open the native contacts screen and select the contacts from there use pickContact()
    
       this.contacts.pickContact()
                    .then((response: Contact) => { 
                       console.log(response)
                    });
    }