Cordova在iOS 11冻结UI上联系插件,同时添加多个联系人

时间:2018-06-12 09:46:55

标签: javascript ios cordova ionic-framework

我已在离子应用中实施了联系人同步功能,可将云联系人同步到iOS手机通讯录中并使用cordova联系人插件。

同时添加多个联系人时会导致冻结整个UI,直到联系人无法添加。下面是我的代码。

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

...

export class SyncExample {

  public cloudContacts:any=[]; // Cloud contacts

  constructor(private contacts: Contacts) {}

  ngOnInit(){
    // Didn't wrote logic for fetch cloudContacts
    this.cloudContacts.forEach((contact)=> {
      this.saveContact(contact);
    })
  }

  saveContact(cloudContact){
    let allNumbers = [], emails = [];
    let contact:any = this.contacts.create();

    allNumbers.push(new ContactField('main', cloudContact.phone));
    emails.push(new ContactField('main', cloudContact.email))

    contact.name = new ContactName(null, cloudContact.first_name, cloudContact.last_name);
    contact.phoneNumbers = allNumbers;
    contact.emails = emails;

    contact.save().then((res)=>{ //Works perfect when having only one contact in cloudContacts
      console.log('Contact saved!');
    }, (err)=> {
      console.log('Error saving contact', err);
    })
  }

}

上面的代码只有一个联系人,但多一个联系人冻结整个UI,并且在添加所有联系人之前无法使用应用程序

经过大量搜索,我发现cordova-plugin-contacts已被弃用,不再支持修复错误。

here是我面临的相关问题。

有没有解决方案可以获得它?

仅供参考:Android运行良好。

如果有人能帮助我,那将是非常好的。

0 个答案:

没有答案