gpt4 book ai didi

cordova - PhoneGap 的网络连接状态不会在 Ripple 中更新

转载 作者:行者123 更新时间:2023-12-04 12:09:50 27 4
gpt4 key购买 nike

用于检查当前网络连接的标准 PhoneGap API(见下文)似乎没有更新它在 Ripple Emulator 中的结果。当我更改连接类型并执行 checkConnection() 时,它会返回第一次调用此函数时的连接类型(在设备就绪时)

function checkConnection() {    // Checks current network status
networkState = navigator.connection.type;
console.log(networkState);

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.NONE] = 'No network connection';

// DEBUG: notify on network state
console.log("Connection type: " + states[networkState]);
}

我还需要做什么(添加事件监听器?)才能使其正常工作?
通常,设备只会在状态从在线变为离线时触发事件,但我需要区分“免费”互联网和 xG 连接。

最佳答案

显然 navigator.connection.type 在 windows 平台上的cordova 中没有更新。
查看代码,navigator.connection.type 仅在 'deviceready' 事件后设置一次。

技巧是在相关事件上使用 Connection#getInfo() 手动更新它

var connection = navigator.connection;
function errorCallback(e) {
console.warn(e);
};
function updateConnection(info) {
connection.type = info;
}
document.addEventListener("resume", function() {
connection.getInfo(updateConnection, errorCallback);
});
document.addEventListener("online", function() {
connection.getInfo(updateConnection, errorCallback);
});
document.addEventListener("offline", function() {
connection.getInfo(updateConnection, errorCallback);
});

免责声明:从我自己的代码中重构/复制粘贴的部分应该是开箱即用的。

关于cordova - PhoneGap 的网络连接状态不会在 Ripple 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com