Android Ionic 2-根据每个请求检查互联网连接
我正在爱奥尼亚2上开发一个应用程序,我想检查每个请求的互联网连接,也就是说,我想在每次网络关闭或打开时收到一条即时消息 我的简单项目将有:Android Ionic 2-根据每个请求检查互联网连接,android,cordova,ionic2,Android,Cordova,Ionic2,我正在爱奥尼亚2上开发一个应用程序,我想检查每个请求的互联网连接,也就是说,我想在每次网络关闭或打开时收到一条即时消息 我的简单项目将有: 第1页-主页(转到另一页的按钮) 第2页-另一页 为此,我使用cordova插件网络信息。来自ionic 2文档: import {Network, Connection} from 'ionic-native'; // watch network for a disconnect let disconnectSubscription = Network.
第1页-主页(转到另一页的按钮)
第2页-另一页 为此,我使用cordova插件网络信息。来自ionic 2文档:
import {Network, Connection} from 'ionic-native';
// watch network for a disconnect
let disconnectSubscription = Network.onDisconnect().subscribe(() => {
console.log('network was disconnected :-( ')
});
// stop disconnect watch
disconnectSubscription.unsubscribe();
// watch network for a connection
let connectSubscription = Network.onConnect().subscribe(() => {
console.log('network connected!');
// We just got a connection but we need to wait briefly
// before we determine the connection type. Might need to wait
// prior to doing any api requests as well.
setTimeout(() => {
console.log(Network.connection);
if (Network.connection === Connection.WIFI) {
console.log('we got a wifi connection, woohoo!');
}
}, 3000);
});
// stop connect watch
connectSubscription.unsubscribe();
问题是Network.onConnect().subscribe(())不检索任何内容。这是实现我的目标的最佳方式?代码的问题是,在订阅网络更改后,您正在调用unsubscribe方法。如果调用
connectSubscription.unsubscribe()
您正在告诉爱奥尼亚,现在您不关心网络连接状态的更改。请删除2个取消订阅方法,您的代码应该不会有问题
另外,subscribe和unsubscribe方法仅侦听更改,因此要检查连接,请直接使用比较代码
if (Network.connection === 'wifi') {
// do some api work
}
让我知道它是否有效。您的代码的问题是,您在订阅网络更改后调用了unsubscribe方法。如果您调用
connectSubscription.unsubscribe()
您正在告诉爱奥尼亚,现在您不关心网络连接状态的更改。请删除2个取消订阅方法,您的代码应该不会有问题
另外,subscribe和unsubscribe方法仅侦听更改,因此要检查连接,请直接使用比较代码
if (Network.connection === 'wifi') {
// do some api work
}
让我知道它是否有效。作为一个评论,而不是一个答案,我认为网络插件对于这种检测来说并不可靠,因为你的用户可能实际上连接到一个没有连接的路由器,并且仅仅因为有一个wifi链接处于活动状态,该插件将指示存在有效连接。我正在使用这也是一个解决方案。只是作为一个评论,而不是一个答案,我不认为网络插件对于这种检测是真正可靠的,因为你的用户实际上可能连接到一个没有连接的路由器,并且仅仅因为有一个wifi链接处于活动状态,插件将指示存在有效的连接。我正在一个这个问题的解决方案也是如此。