В приложении Ionic 4 я использую Cordova Contacts
для извлечения всех контактов устройства с помощью метода find
. Он работает нормально, за исключением того, что когда я получаю контакты в приложении, затем переключаюсь в приложение телефона, изменяю контакт (например, добавляю адрес электронной почты), сохраняю его, возвращаюсь в мое приложение и снова получаю доступ к списку контактов, это необновляется с новым адресом электронной почты, даже если метод find
вызывается снова.
Однако если я выйду из приложения и перезапущу, то изменения контакта появятся.
Объект Contacts являетсяполе ионного / углового сервиса, инициализируется конструктором сервиса. Я также пытался воссоздать этот объект всякий раз, когда вызывается метод find
, но это не помогает.
export class DeviceContactService {
constructor(private contacts: Contacts) { }
getDeviceContacts(): Observable<any> {
// this.contacts = new Contacts() // does not work better
let fields : ContactFieldType[] = [ "displayName"]
let options = new ContactFindOptions();
options.filter = ""
options.multiple = true
options.desiredFields = [
"displayName",
"name",
"emails",
"phoneNumbers"
]
let prom = this.contacts.find(fields, options)
...
}
}
Я ожидал обещания вернуть список контактов с самой последней информацией, хранящейся вбаза данных контактов устройства, но этого не происходит. Он всегда возвращает данные такими, какими они были до изменения базы данных контактов.