2012-07-07 3 views
1
<html> 
    <head> 
    <title>Cordova Offline Example</title> 

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    // Call onDeviceReady when Cordova is loaded. 
    // 
    // At this point, the document has loaded but cordova-1.9.0.js has not. 
    // When Cordova is loaded and talking with the native device, 
    // it will call the event `deviceready`. 
    // 

    function Network(){ 
     if(navigator.onLine) 
      { 
       alert('You are Online'); 
      } 
     else 
      { 
       alert('You are Offline') 
      } 
    } 
    </script> 
    </head> 
    <body > 
    <input type="button" value="Check Network" onclick="Network()" /> 
    </body> 
</html> 

html 코드를 사용하여 네트워크 연결을 확인하려고합니다. 내 로컬 컴퓨터의 crome에서이 코드를 실행하지만 안드로이드에서 작동하지 않는 이유는 작동합니다.phonegap을 사용하여 html 5 코드가 안드로이드에서 작동하지 않습니다.

+0

위의 코드 문제는 오프라인 상태 인 장치와 navigator.onLine 속성을 지원하지 않는 장치의 차이점을 알 수 없다는 것입니다. 내 생각 엔 안드로이드 브라우저가 지원하지 않을 것입니다. if 문의 시작 부분에 if (navigator.onLine === undefined)를 추가하여 지원 여부를 확인하십시오. –

+0

이 경우 왜 온라인 상태 일 때 navigator.onLine = true가됩니다. – vishalg

+0

navigator.onLine은 브라우저의 온라인 상태를 반환하므로 IE 및 Firefox와 같이 상태를 '오프라인으로 작업'으로 변경하는 기능을 제공하는 브라우저가 거의 없습니다. Chrome은 사용 가능한 네트워크에 연결되어있는 한 언제나 onLine을 제공합니다. – dhaval

답변

2

은 유 인터넷 연결 확인 문제 여기

같은 일부 TAKS에 사용이 일부 폰갭 특정 이벤트가 u는 인터넷 connectivty 확인할 수있는 예이다

<!DOCTYPE html> 

navigator.network.connection.type 예

<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Wait for PhoneGap to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
// 
function onDeviceReady() { 
    checkConnection(); 
} 

function checkConnection() { 
    var networkState = navigator.network.connection.type; 

    var states = {}; 
    states[Connection.UNKNOWN] = 'Unknown connection'; 
    states[Connection.ETHERNET] = 'Ethernet connection'; 
    states[Connection.WIFI]  = 'WiFi connection'; 
    states[Connection.CELL_2G] = 'Cell 2G connection'; 
    states[Connection.CELL_3G] = 'Cell 3G connection'; 
    states[Connection.CELL_4G] = 'Cell 4G connection'; 
    states[Connection.NONE]  = 'No network connection'; 

    alert('Connection type: ' + states[networkState]); 
} 

</script> 

대화 상자가 네트워크 상태를보고합니다. 자세한 내용에 대한

브라우저의 온라인 상태를이 Connection

+0

나는이 코드를 여러 번 시도했지만 아무런 노력을하지 않았는데, 왜냐하면이 코드를 실행할 때마다 인터넷에서 박해를 당하더라도 "셀 3G 연결"이라고 말하는 것과 같은 결과가 나오기 때문입니다. 많은 사람들이 똑같은 질문을 한 것을 본 것에 대한 해결책이 없습니다. – vishalg

+0

고마워요 ... – vishalg

+0

hmmm congrats .... – Aamirkhan

0

// 코드 상단에 아래 코드를 추가하고 확인하십시오.

<!DOCTYPE HTML> 
+0

내 코드 맨 위에이 줄을 추가했습니다 .... 나는 항상 "You are Online"경고를 출력으로 내고 있습니다. 인터넷 연결을 끊으십시오. – vishalg

0

navigator.onLine 반환 한 번 봐, 그래서 IE와 파이어 폭스, 크롬과 같은 오프라인으로 작업 상태를 변경하는 기능을 제공합니다 몇 가지 브라우저가 있습니다 이

https://developer.mozilla.org/en/DOM/window.navigator.onLine

이 장치가 정말 공공/PRI에 연결되어 있는지 확인하려면 사용 가능한 네트워크에 연결되어있는만큼이 같은 온라인 진정한 제공 vate 네트워크를 사용하는 경우 간단한 AJAX 호출을 수행하여 대상 시스템에 도달 할 수 있는지 여부를 확인해야합니다.

필자는 위의 방법을 사용하여 Device에서 개인 VPN 네트워크에 연결하여 필요한 네트워크가 실제로 사용 가능한지 확인하고이를 기반으로 필요한 코드를 실행해야했습니다.

관련 문제