jQuery Mobile 및 Phonegap (3.3)을 사용하여 모바일 응용 프로그램을 개발 중입니다.이 응용 프로그램에서 iframe에 웹 사이트를 표시하고 싶으므로 정기적으로 인터넷 연결을 확인하고 팝업이 필요합니다. 인터넷에 연결되어 있지 않습니다. 내 응용 프로그램에 이미지가 있고 메뉴로이 이미지를 사용하고 있습니다. 일부 이미지 링크는 인터넷에 연결되어 있으므로이 이미지를 클릭 할 때마다 인터넷 연결을 확인하고 인터넷에 연결되어 있지 않으면 팝업이 나타납니다.인터넷 연결 확인 및 팝업 표시
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
document.addEventListener("deviceready", onDeviceReady, false);
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>
그것은 때 응용 프로그램이 시작 첫 번째 시간을 확인 : 나는이 시도.
이<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
//
function onDeviceReady() {
}
// alert dialog dismissed
function alertDismissed() {
// do something
}
function checkReachability() {
var _check=true;
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: '+ networkState + states[networkState]);
if(networkState==="unknown"){
_check=false;
showAlert();
return _check;
}
else {
return true;
}
}
function showAlert() {
navigator.notification.alert("Please connect your device to Internet.",onDeviceReady,"No Network Connectivity","OK");
}
</script>
<img src="sample.png" id="img1" data-linkurl="#page2" onClick="checkReachability()">
내가 노력이 : 내가 이것을 시도
<script>
document.addEventListener("offline", function() {
alert("No internet connection");
}, false);
</script>
가 :
document.addEventListener("offline", onOffline, false);
document.addEventListener("online", onOnline, false);
function onOnline() {
$.mobile.back();
}
//
function onOffline() {
$.mobile.changePage("offline.html");
}
난이 시도 :하지만 내가 이것을 시도 주기적으로
그것을 확인해야
function onDeviceReady(){
try{
var networkState = navigator.connection && navigator.connection.type;
setTimeout(function(){
networkState = navigator.connection && navigator.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]);
}, 500);
}catch(e){
alert(e);
$.each(navigator, function(key, value){
alert(key+' => '+value);
});
}
}
config.xml 파일 :
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.ACCESS_NETWORK_STATE" />
</gap:config-file>
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.INTERNET" />
</gap:config-file>
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.READ_PHONE_STATE" />
</gap:config-file>
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" />
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
androidmainfest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
guyz 나에게 고급의 감사 도와주세요. 당신이 그것을 언급하지 않았기 때문에
를 이벤트 online'이 작업을 수행하는 방법이다'offline''듣기합니다. 이 코드를 어떻게 테스트하고 있는지 설명 할 수 있습니까? 비행기 모드를 사용하는 기기에서 ...? – sherb
인터넷에 연결되어 있지 않은 기기에서 테스트를 해보니 직접 사용할 수없는 웹 페이지가 표시됩니다. – user3603107
네트워크 정보 플러그인이 설치되어 있는지 확인 했습니까? (아래 답변을 참조하십시오.) – sherb