我正在尝试使用Phonegap制作一个简单的应用程序,并使用Adobe Phonegap生成器进行编译。我已经找到并使用了充分记录的示例来使用下面的navigator.connection.type,并在其中添加了另一行,以在设备准备就绪时生成警告框。它甚至没有那么远。我曾在某些时候通过将代码从头部移动到页面主体来显示无尽的旋转圈,但最终没有帮助。在iOs和Android设备上进行测试的结果相同,并且config.xml包含: -即使设备准备就绪,navigator.connection.type也不能正常工作*或*设备从未准备好
<plugin name="NetworkStatus" value="CDVConnection" />
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" />
任何帮助极大的赞赏。
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is loaded and it is now safe to make calls Cordova methods
//
function onDeviceReady() {
alert('Device is ready');
checkConnection();
}
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]);
}
</script>
谢谢,这确实让我感动长一些。我现在已经缩小了问题范围。我现在得到的代码只要运行checkConnection函数(我用一个警报来验证),但它永远不会到达该函数的末尾,以提醒我连接是什么。 – galaxyg
进一步的测试,它在navigator.connection.type下降,我可以提醒这个值并且警报从不发生。 – galaxyg
进一步观察你的代码我发现你正在使用navigator.onLine而不是navigator.connection.type,如果我尝试这样,我会得到一个结果:true。我想这会解决问题,因为我不需要知道类型,只有当我在线或没有。但是为什么连接类型代码不起作用,这是一个难题。 – galaxyg