ionic-framework - 如何使用 Ionic 和 Cordova 联系人重新加载联系人数据?
问题描述
在 Ionic 4 应用程序中,我使用 CordovaContacts
通过该find
方法检索所有设备联系人。它工作正常,除了当我在应用程序中检索联系人,然后切换到手机应用程序,修改联系人(例如添加电子邮件地址),保存,恢复到我的应用程序,并再次访问联系人列表时,它不是即使find
再次调用该方法,也会使用新的电子邮件地址刷新。
但是,如果我退出应用程序并重新启动,则会出现联系人更改。
Contacts 对象是 Ionic/Angular 服务的一个字段,由服务构造函数初始化。每当调用该方法时,我也尝试重新创建此对象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)
...
}
}
我希望承诺返回一个联系人列表,其中包含存储在设备联系人数据库中的最新信息,但它没有发生。它总是返回联系人数据库更改之前的数据。
解决方案
您可能还会发现,无论用户是将他们的联系人存储在 iCloud(它使用来自服务器的推送来刷新其数据)还是其他地方(使用 fetches - 用户可以指定“自动”或低至 15 的间隔,结果都会有所不同距离“设置”中的“联系人”页面几分钟,但不会更快)
推荐阅读
- python - 从多个进程将数据添加到队列
- python - Python Flask 项目的 TSQL 查询
- javascript - 使用按钮在歌曲之间切换
- c# - 加载 Visual Studio 解决方案在设计器中出现未处理的异常:“找不到路径的一部分(文件路径)”
- typescript - 使用 Mocha Chai 异步函数进行测试
- windows - 在 NavView 导航窗格 UWP 中使用命令栏
- java - 两个 POJO 之间的有效比较以确定它们的相似程度
- python - 避免将正则表达式与行首匹配
- node.js - 如何使用 bootstrap 和 react.js 设置提交警报?
- php - 如何在 PHP 中从数组中创建对象