首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic应用程序上的navigator.onLine

Ionic应用程序上的navigator.onLine
EN

Stack Overflow用户
提问于 2016-08-06 13:59:34
回答 1查看 2.4K关注 0票数 1

在我的Ionic应用程序中,我需要根据用户是离线还是在线执行某些操作。

我会在应用程序中使用$cordovaNetwork插件来查找连接状态。然而,在我的笔记本电脑的开发过程中,我正在寻找一种简单的方法来测试连接性(而不必在设备上部署)。

因此,我想使用navigator.onLine来测试脱机/在线业务逻辑。但是,即使我关闭了笔记本电脑上的wifi (没有连接到笔记本电脑的局域网电缆),navigator.onLine仍然返回true。

能否有人建议我如何使navigator.onLine返回假或任何其他方式,以确定是否有互联网连接?

编辑:浏览器是Chrome

EN

回答 1

Stack Overflow用户

发布于 2016-08-06 18:06:40

服务代码:

代码语言:javascript
复制
//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);  
    }       
}
  }
})

然后在控制器中(一个例子):

代码语言:javascript
复制
.controller('Map3Ctrl',   
function(ConnectivityMonitor) {

 if(ConnectivityMonitor.isOnline()){
    console.log("online")
 }else{
  console.log("offline");
 }

})

在离子应用程序中监视在线和离线状态

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38805050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档