2016-08-06 3 views
1

내이 앱에서는 사용자가 오프라인인지 또는 온라인인지에 따라 특정 작업을 수행해야합니다.navigator.online on Ionic app

연결 상태를 찾으려면 앱에서 $ cordovaNetwork 플러그인을 사용하고 있습니다. 그러나 랩톱에서 개발하는 동안 (장치에 배포하지 않고도) 연결을 테스트 할 수있는 쉬운 방법을 찾고 있습니다.

그래서 저는 오프라인/온라인 비즈니스 로직을 테스트하기 위해 navigator.onLine을 사용할 것을 고려했습니다. 그러나 랩탑에서 wifi를 끄더라도 (노트북에 연결된 LAN 케이블이 없음) navigator.onLine은 여전히 ​​true를 반환합니다.

누군가가 navigator.onLine을 false로 설정하거나 인터넷 연결 여부를 확인하는 방법을 조언 할 수 있습니까?

EDIT : 브라우저 크롬

+0

우리가 당신을 도울 수 있도록 몇 가지 코드 스 니펫을 공유하십시오. –

+0

if (navigator.onLine) { \t console.log ('User is Online'); } else { \t console.log ('User is offline'); } 내 노트북에서 Wi-Fi가 꺼져 있어도 '사용자는 온라인 상태'입니다. – kayasa

답변

2

하는 서비스 번호 :

컨트롤러이어서
//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"); 
} 

}) 

Monitoring Online and Offline States in an Ionic Application

관련 문제