gpt4 book ai didi

angular - 当用户离线并返回在线时,如何使我的 ionic 清新器正常工作?

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:56 26 4
gpt4 key购买 nike

当我拔下我的 dsl 电缆并重新插入时,我的 ionic 清新器无法正常工作,我不知道为什么。

我想在互联网离线时停止它,当互联网打开时用户可以这样做。

代码如下:

doRefresh(refresher) {
if (this.isOnline) {
this.refreshData();
this.getAssignedWarrents()
.then(() => {
console.log('Refresher completed.');
refresher.complete();
});
}else {
refresher.complete();
}
}

最佳答案

一个快速而肮脏的解决方案是直接使用 navigator.onLine 属性而不是 isOnline 属性:

doRefresh(refresher) {
if (navigator.onLine) {
this.refreshData();
this.getAssignedWarrents().then(
() => {
console.log('Refresher completed.');
refresher.complete();
}
);
} else {
refresher.complete();
}
}

您当前的代码不起作用,因为您从未更新 isOnline 属性。因此复习者永远不会“知道”互联网连接是离线还是在线。

但是,更好的方法是在您的 View 中直接禁用 ionic 刷新器。

如何实现它的示例。

<ion-refresher 
[disabled]="hasNoInternetConnection()"
(ionRefresh)="doRefresh($event)">
</ion-refresher>

接下来在你的 Controller 中:

hasNoInternetConnection(): boolean {
return !navigator.onLine;
}

doRefresh(refresher) {
// Your usual refresh. Note how we do not need to check if we are online here.
this.refreshData();
this.getAssignedWarrents().then(
() => {
console.log('Refresher completed.');
refresher.complete();
}
);
}

这种方法更好,因为我们让 Ionic 处理禁用刷新器而不是我们自己检查它。

如果 navigator.onLine 不能为您可靠地工作,您还可以使用 Network Ionic 团队提供的插件。

关于angular - 当用户离线并返回在线时,如何使我的 ionic 清新器正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56442918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com