【发布时间】:2015-11-15 14:34:33
【问题描述】:
我想检查设备是否具有互联网访问权限。来自科尔多瓦官方文档:
此代码,仅用于获取connection type
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();
但是如何检查设备是否真的可以访问互联网?也就是说,因为设备可能使用 WiFi 连接类型连接到路由器,但它无法访问互联网,只能访问本地。在这种情况下,checkConnection(); 将返回:WiFi connection。
或已连接到 3G 网络电话运营商,但用户没有足够的积分上网。在这种情况下,checkConnection(); 将返回:Cell 3G connection
但在这两种情况下,即使已连接,用户也无法真正访问互联网。
我认为唯一的办法是 ping 谷歌或其他服务器以检查是否真的可以访问互联网,在 states[networkState] != No network connection 的情况下
或者您认为navigator.onLine 可以在所有设备(Android、iOS、BlackBery 10)上运行吗?
我希望我表达得很好,我的英语真的很烂。
【问题讨论】:
标签: cordova cordova-plugins navigator