我正在尝试确定应用程序启动时设备是否已连接到互联网。 据我所知,javascript 代码应该是这样的:
function isOnline() {
var networkState = navigator.network.connection.type;
if (networkState == Connection.NONE) {
return false;
};
return true;
}
到目前为止,我只在 iOS 上尝试过。 不幸的是,navigator.network 是未定义的。
我知道我必须在 config.xml 文件中添加网络模块。 根据 PhoneGap 页面 ( http://docs.phonegap.com/en/3.0.0/cordova_connection_connection.md.html ), 这是我做的方式:
<feature name="NetworkStatus">
<param name="ios-package" value="CDVConnection" />
</feature>
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.NetworkManager" />
</feature>
有人知道我错过了什么吗?
最佳答案
试试这个。
在此处安装此 cordova 插件。
https://github.com/apache/cordova-plugin-network-information
并将这段代码添加到js文件中
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
isOnline();
}
function isOnline() {
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';
if ((states[networkState]) == states[Connection.NONE]) {
alert('No Internet Connection. Click OK to exit app');
navigator.app.exitApp();
}
}
关于ios - 在 PhoneGap 应用程序中检查互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939557/