我们正在使用Angular开发Ionic v3应用程序。 在这里,我们面临的问题是,在进入或离开工作wifi网络并从/向蜂窝数据更改后,有时(有时)失去互联网连接。之后,我们将无法从网络api检索任何数据。 即使移动设备具有网络连接,也无法从我们的应用程序内部连接Internet。
以下代码显示了我们如何观察网络变化:
import { Network } from '@ionic-native/network';
export enum ConnectionStatus {
Online,
Offline
}
@Injectable()
export class NetworkHelper {
private status: BehaviorSubject<ConnectionStatus> = new BehaviorSubject(ConnectionStatus.Offline);
constructor(private platform: Platform, public network: Network, public eventCtrl: Events) {
this.platform.ready().then(() => {
this.initializeNetworkEvents();
}
}
public initializeNetworkEvents() {
this.network.onDisconnect().subscribe(() => {
if (this.status.getValue() === ConnectionStatus.Online) {
console.log('WE ARE OFFLINE');
this.eventCtrl.publish('network:offline');
}
});
this.network.onConnect().subscribe(() => {
if (this.status.getValue() === ConnectionStatus.Offline) {
console.log('WE ARE ONLINE');
this.eventCtrl.publish('network:online');
}
});
}
}
到目前为止,恢复的唯一方法是打开和关闭飞行模式或手动重新启动应用程序。对于用户来说,这当然是不可接受的。
有人遇到相同的问题并且知道如何解决吗?
感谢和问候 Timon