我尝试了一些建议,例如 navigator.onLine ,但即使在飞行模式下,我的应用也“认为”在线。
我也找到了一些关于ajax的建议,但我只是想检查一下我是否在线打开外部网页。如果没有,我打算显示一条消息,例如“您的设备似乎处于脱机状态。请检查您的连接!”。
答案 0 :(得分:12)
最好的方法是使用cordova network information plugin
无缝地完成工作。此插件提供有关设备蜂窝和wifi连接的信息,以及设备是否具有互联网连接。
您可以查看此插件的official github page以获取更多信息。希望它有所帮助。
答案 1 :(得分:4)
下载插件:https://www.npmjs.com/package/cordova-plugin-network-information
试试这个。
document.addEventListener("deviceready", function(e){
console.log(navigator.connection.type);
document.addEventListener("offline", function(e){
alert("NO_NETWORK");
}, false);
}, false);
<强>离线强>
当应用程序脱机并且设备未连接到Internet时,事件将触发。
document.addEventListener("offline", yourCallbackFunction, false);
答案 2 :(得分:2)
按this
function checkConnection() {
var networkState = 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.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
checkConnection();
答案 3 :(得分:0)
您可以使用此plugin
然后您可以在应用程序中的任何地方使用它,而无需导入
if(navigator.connection.type === 'none') {
alert('there is no internet')
}
,您可以将其添加到setInterval
setInterval(() => {
if(navigator.connection.type === 'none') {
alert('there is no internet')
} }, 5000);
“ avigator.connection.type”还有另一个值 例如,当有互联网时,“ avigator.connection.type”的值就是连接的类型(wifi,4g,3g,Windows上的以太网....)
答案 4 :(得分:0)
您可以使用 cordova-plugin-network-information
插件检查您的安卓设备与互联网的连接。此外,如果您想在互联网的可用性上执行某些任务,请参见下文:
if (navigator.connection.type == "none") {
alert("No Internet Connection...");
}
else {
yourdesiredFunction();
}