1,安装插件:
cordova plugin add cordova-plugin-network-information2,Connection的状态:
Connection.UNKNOWN Connection.ETHERNET Connection.WIFI Connection.CELL_2G Connection.CELL_3G Connection.CELL_4G Connection.CELL Connection.NONE3,用法:实际项目中判断是否有无网络代码:
const appBizName = 'com.zpmc.xiongan.chuxing'; const isApp = navigator.userAgent.indexOf(appBizName) >= 0; /** * 发送消息(cordova) * @private */ function ready(callback) { return new Promise((resolve, reject) => { if (!isApp || ready.deviceReadied === true) { callback(resolve, reject); return; } document.addEventListener('deviceready', () => { ready.deviceReadied = true; callback(resolve, reject); }, false); }); } /** * 是否网络在线 */ isOffLine() { return ready(resolve => { console.log('aiApp', isApp, 'online', navigator.onLine); if (isApp) { const networkState = navigator.connection.type; // Toast(`networkState:${networkState},navigator.connection:${navigator.connection}`); if (networkState == window.Connection.NONE) { resolve(true); } else { resolve(false); } } else if (navigator.onLine) { resolve(false); } else { resolve(true); } console.log('aiApp', isApp, 'online', navigator.onLine); }); }思路:1,根据navigator.connection.type的类型比对Connection常量的到网络的状态
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();2,直接监听无网络状态或者有网状态(监听这些事件必须都是在deviceready之后):
document.addEventListener("offline", onOffline, false); function onOffline() { // Handle the offline event } document.addEventListener("online", onOnline, false); function onOnline() { // Handle the online event }参考: cordova中文文档之网络状态