Extjs 如何在出现';没有互联网连接
我需要提醒用户以下情况Extjs 如何在出现';没有互联网连接,extjs,cordova,sencha-touch,sencha-touch-2,Extjs,Cordova,Sencha Touch,Sencha Touch 2,我需要提醒用户以下情况 请求超时 没有互联网连接 无法访问服务器 这是代码;如何在发生以下情况时捕获并提醒用户 failure: function (response) { var text = response.responseText; console.log("FAILED"); },success: function (response) { var text = response.responseText; console.log("SUCCESS");
failure: function (response) {
var text = response.responseText;
console.log("FAILED");
},success: function (response) {
var text = response.responseText;
console.log("SUCCESS");
}
我尝试了下面的代码来检查是否可以访问internet,但没有成功
var networkState = navigator.network.connection.type
alert(states[networkState]);
if (networkState == Connection.NONE){
alert('No internet ');
};
更新**
我在index.html中添加了以下内容,但是,当我禁用WIFI时,我没有看到警报弹出
<script>
function onDeviceReady() {
document.addEventListener("offline", function() {
alert("No internet connection");
}, false);
}
</script>
函数ondevicerady(){
document.addEventListener(“脱机”,函数(){
警报(“无互联网连接”);
},假);
}
您可以使用
document.addEventListener("offline", youCallbackFn, false);
网络对象允许访问设备的蜂窝和wifi连接信息
您可以通过以下方式进行测试
function onDeviceReady() {
navigator.network.isReachable("phonegap.com", reachableCallback, {});
}
// Check network status
//
function reachableCallback(reachability) {
// There is no consistency on the format of reachability
var networkState = reachability.code || reachability;
var states = {};
states[NetworkStatus.NOT_REACHABLE] = 'No network connection';
states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
alert('Connection type: ' + states[networkState]);
}
最好是收听“”事件。当您获得脱机事件时,您可以警告您的用户并采取任何必要的步骤来保存数据等 例如,您的“DeviceRady”回调:
document.addEventListener("offline", function() {
alert("No internet connection");
}, false);
此代码适用于PhoneGap的大多数所有版本。它至少从1.0版本就开始使用了。正如Simon所说,您可以使用
document.addEventListener("offline", youCallbackFn, false);
或者您可以询问布尔属性
navigator.onLine
(应返回true或false)
不过,此技术将告诉您设备是否已连接。注意事项是,设备可以连接到WiFi,但路由器可能处于脱机状态。在这种情况下,可以使用轮询机制,如Timedal
Ext.Ajax.request
,以减少超时。超时过期=脱机。您可以在应用程序的app.js中添加“Ext.device.Connection”。并使用以下代码检查您的设备处于联机或脱机状态:
if (Ext.device.Connection.isOnline()) {
alert('Connected to internet');
}
else{
alert('You are not connected to internet');
}
只需将其嵌入到标签中
<body onoffline="alert('PLEASE CHECK YOUR INTERNET SETTING');">
控制台日志上抛出了什么错误/警告?我应该在哪里添加上述函数(ondevicerady
,reachable callback
)。是否在app.js
中?您可以直接包括navigator.network.isReachable(“phonegap.com”,reachable callback,{})代码>行,用于测试网络连接并添加回调函数的任何位置。最新版本的PhoneGap中不推荐使用IsRecable方法。请确保您在manifest.xml中具有INTERNET和READ_PHONE_STATE权限。另外,如果您最近将PhoneGap升级到1.6或1.7,请确保您的plugins.xml引用的是“NetworkStatus”而不是“NetworkStatus”,名称已更改以删除该空间。@SimonMacDonald:我关闭了Wi-Fi,尝试了所有代码,但没有得到结果。那是因为我在模拟器上吗??我用科尔多瓦2。0@alibm这很难说。您可能没有收到脱机事件,因为仿真器可以伪造3G连接。尝试将模拟器置于飞行模式。太棒了,西蒙!非常感谢:-)