cordova在线/离线活动没有在Android中解雇

时间:2014-09-15 18:05:24

标签: android cordova cordova-3 cordova-plugins

我想听听,当我的设备在我的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]);

}

请帮我解决这个问题。我现在已经坚持这个问题了一段时间。

由于

0 个答案:

没有答案