我想听听,当我的设备在我的Cordova应用程序中脱机/在线时,但我无法实现它。我可以在SO中看到其他questions,具有相同的主题,但没有一个被解析。我试过在Cordova documentation中说过。
这就是我所做的。我使用CLI创建了一个新的Cordova android项目(顺便说一句,我使用Cordova 3.4),然后添加了' org.apache.cordova.network-information'插件如下。
cordova plugin add org.apache.cordova.network-information
我的配置文件的条目如下。
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
我的AndroidManifest文件包含以下条目。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
我的JS代码如下。
initialize: function() {
//alert('initialise');
this.bindEvents();
},
// Bind Event Listeners
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
onDeviceReady: function() {
alert('device ready');
document.addEventListener('online', this.onDeviceOnline, false);
document.addEventListener('offline', this.onDeviceOffline, false);
},
onDeviceOnline: function() {
alert('onDeviceOnline');
},
onDeviceOffline: function() {
alert('onDeviceOffline');
}
它总是来到设备就绪,但是当我连接/断开我的Wi-Fi(以及蜂窝数据)时,它永远不会出现在线/离线事件处理程序。
当我调用下面的方法时,它会正确地警告连接类型。所以我知道我的插件安装成功了。
function checkConnection() {
alert('checking connection');
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]);
}
请帮我解决这个问题。我现在已经坚持这个问题了一段时间。
由于