我看到一些不同的选项来检查与phonegap的互联网连接。有document.addEventListener("online", onOnline, false);
,还有navigator.network.connection.type
......但我不确定哪一个是最佳做法。我还希望能够防止手机连接到wifi网络但没有互联网连接的坏情况。
$(document).on('pagecreate','#explanation-short', function(){
if ( isPhoneGap() ) {
if (checkConnection() == "none" ) {
connectionStatus = 'offline';
} else {
connectionStatus = 'online';
}
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';
//console.log('Connection : ' + Connection);
//console.log('Connection type: ' + states[networkState]);
return networkState;
}
} else {
connectionStatus = navigator.onLine ? 'online' : 'offline';
}
console.log("connectionStatus : "+connectionStatus);
});
例如,如果手机连接到wifi,此代码有效,但我们不确定互联网是否实际可用。
phonegap 3.3+和Jquery mobile 1.4的最佳做法是什么?
答案 0 :(得分:7)
活动,
document.addEventListener("online", onOnline, false);
仅在您的应用已加载并重新获得连接时触发。这不会在应用程序启动时触发。
因此,您必须在启动应用程序时使用checkConnection()
方法,然后如果您需要在应用程序运行时稍后检查,则使用事件监听器。
答案 1 :(得分:4)
在设备内部就绪功能中,我使用以下行检查互联网连接
if(navigator.connection.type==0)
{
alert('This application requires internet. Please connect to the internet.');
}
else if(navigator.connection.type=='none')
{
alert('This application requires internet. Please connect to the internet.');
}
else
{
//Hurray I'm online
}
目前这对我很有帮助。但我仍然没有那种方法来检测连接的wifi,但没有互联网。我也想知道如何检测它。
答案 2 :(得分:0)
在Phonegap中有两个事件监听器'在线'& '离线'。使用它们来快速响应。请检查示例:
var internet;
document.addEventListener('online',online,false);
document.addEventListener('offline',offline,false);
function online(){
internet=true;
}
function offline(){
internet=false;
}
if(internet){
// internet is connected
}else{
// internet is not connected
}
有关详细信息,请访问http://docs.phonegap.com/en/3.0.0/cordova_events_events.md.html