在我的Ionic应用程序中,我需要根据用户是离线还是在线执行某些操作。
我会在应用程序中使用$cordovaNetwork插件来查找连接状态。然而,在我的笔记本电脑的开发过程中,我正在寻找一种简单的方法来测试连接性(而不必在设备上部署)。
因此,我想使用navigator.onLine来测试脱机/在线业务逻辑。但是,即使我关闭了笔记本电脑上的wifi (没有连接到笔记本电脑的局域网电缆),navigator.onLine仍然返回true。
能否有人建议我如何使navigator.onLine返回假或任何其他方式,以确定是否有互联网连接?
编辑:浏览器是Chrome
发布于 2016-08-06 18:06:40
服务代码:
//service to check if device or (browser) is online or offline
.factory('ConnectivityMonitor', function($rootScope, $cordovaNetwork){
return {
isOnline: function(){
if(ionic.Platform.isWebView()){
return $cordovaNetwork.isOnline();
} else {
return navigator.onLine;
}
},
isOffline: function(){
if(ionic.Platform.isWebView()){
return !$cordovaNetwork.isOnline();
} else {
return !navigator.onLine;
}
},
startWatching: function(){
if(ionic.Platform.isWebView()){
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
console.log("went online");
});
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
console.log("went offline");
});
}else {
window.addEventListener("online", function(e) {
console.log("went online");
}, false);
window.addEventListener("offline", function(e) {
console.log("went offline");
}, false);
}
}
}
})然后在控制器中(一个例子):
.controller('Map3Ctrl',
function(ConnectivityMonitor) {
if(ConnectivityMonitor.isOnline()){
console.log("online")
}else{
console.log("offline");
}
})在离子应用程序中监视在线和离线状态
https://stackoverflow.com/questions/38805050
复制相似问题