2013-02-04 3 views
0

phonegap 앱이로드 될 때 데이터 피드를로드하려고합니다. 데이터 연결이 없을 때 시스템이이를 감지하고 "미안하지만 데이터 연결이 없습니다."와 같은 좋은 메시지를주고 싶다는 점을 제외하고는 정상적으로 작동합니다. 페이지가 모두로드되면 버튼을 클릭하고 연결 상태를 알려주는 함수를 실행할 수 있습니다. 그러나 페이지가로드 될 때이 코드가 자동으로 실행되지 않으므로 그 이유를 파악할 수 없습니다. iOS 나 Android에서이 문제를 테스트 할 때도 동일한 문제가 발생합니다. 나는 기본적인 것들만 제거 했으므로 누군가가 문제를 발견 할 수 없기를 바랍니다.내 phonegap jquery 앱으로 페이지로드시 연결 상태를 가져올 수 없습니다.

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/main.css" /> 
    <script type="text/javascript" charset="utf-8" src="js/jquery-1.7.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="js/main.js"></script> 
    <script src="js/jquery.jsonp-2.1.4.min.js"></script>  
<script> 
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]); 
    if(states[networkState] == 'No network connection') { show_no_connection(); } 
} 

$(document).ready(function(){ 
    checkConnection(); 
}); 

function show_no_connection() { 
     $('#status').html('You Have No Data Connection!'); 
} 


</script>  

</head> 
<body> 

<div id="status">SO FAR, YOU HAVE A CONNECTION.</div> 
    <a href='javascript:void(0);' onclick='checkConnection();'>Check your connection</a><br/><br/> 
    <script type="text/javascript" src="cordova-2.2.0.js"></script> 
    <script type="text/javascript" src="js/index.js"></script> 
    <script type="text/javascript"> 
     app.initialize(); 
    </script>  
</body> 

답변

1

클래식 jQuery 구문 $(document).ready(function(){jQuery Mobile에 사용하지 마십시오,이 Phonegap 코드를 초기화 할 수 없습니다 말할 것도없고 제대로 작동하지 않습니다. 이 주제에 대한 자세한 내용은 ARTICLE에서 확인할 수 있습니다. 또는 그것을 찾으십시오 HERE.

이 문제를 해결하기 위해 사용되어야한다 :

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]); 
    if(states[networkState] == 'No network connection') { show_no_connection(); 
} 

function show_no_connection() { 
    $('#status').html('You Have No Data Connection!'); 
} 

코드 Phonegap 프레임 워크 초기화를 기다릴 필요하고 그것은 다음과 같이 수행됩니다

document.addEventListener("deviceready", onDeviceReady, false); 
관련 문제