我在Ionic 2上开发了一个应用程序,我想检查每个请求的互联网连接,即我希望每次网络关闭或启动时都会收到一条即时消息。
我的简单项目将有:
第1页 - 主页(按钮转到另一页)
第2页 - 另一页
为此我使用了cordova插件网络信息。来自离子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(()不会检索任何内容。这是实现目标的最佳方式吗?
答案 0 :(得分:2)
您的代码的问题在于您在订阅网络更改后调用取消订阅方法。如果你打电话给connectSubscription.unsubscribe()
,你告诉离线,现在你不关心网络连接状态的变化。删除2个取消订阅方法,您的代码应该没问题。
订阅和取消订阅方法也只监听更改以检查连接,直接使用比较代码。
if (Network.connection === 'wifi') {
// do some api work
}
让我知道它是否有效。