正在检查Cordova和AngularJS中的网络连接状态
Checking network connection status in Cordova and AngularJS
这是一个基本问题,因为我是Cordova和AngularJS的初学者
我有一个带有Cordova
和AngulaJS
的应用程序,我想用cordova插件的网络信息来检查网络连接。
以下代码运行良好:
var app = angular.module('CordovaPluginTest', []);
app.run(['$rootScope', function ($rootScope) {
document.addEventListener('deviceready', function () {
document.addEventListener('online', toggleCon, false);
document.addEventListener('offline', toggleCon, false);
if (navigator.connection.type == Connection.NONE)
$rootScope.$apply(function () { $rootScope.isOnline = false; });
else
$rootScope.$apply(function () { $rootScope.isOnline = true; });
}, false);
function toggleCon(e) {
if (e.type == 'online')
$rootScope.$apply(function () { $rootScope.isOnline = true; });
else if (e.type == 'offline')
$rootScope.$apply(function () { $rootScope.isOnline = false; });
}
}])
但下面的一个不起作用:
var app = angular.module('CordovaPluginTest', []);
app.run(['$rootScope', function ($rootScope) {
$rootScope.$on('deviceready', function () {
$rootScope.$on('online', function () { $rootScope.isOnline = true; });
$rootScope.$on('offline', function () { $rootScope.isOnline = false; });
if (navigator.connection.type == Connection.NONE)
$rootScope.isOnline = false;
else
$rootScope.isOnline = true;
});
$rootScope.$watch('isOnline', function (val) { alert('watch isOnline:'+val);})
}])
为什么定义angular event listener
不起作用?事实上,它根本没有得到活动!在角度上做这件事的正确方法是什么?
对于document
DOM元素,Angular使用包装器($document),并依赖jQuery/jqLite绑定相关事件。
因此,您可以使用$document.on("event-type",function( event ){ ... });
或angular.element(document).bind("event-type",function( event ){ ... });
将处理程序附加到document
。
但是你肯定不能使用$rootScope$on以侦听附加到文档元素的事件。
试试这个:
app.run(function($window, $rootScope) {
$rootScope.online = navigator.onLine;
$window.addEventListener("offline", function () {
$rootScope.$apply(function() {
$rootScope.online = false;
// $window.location.reload();
});
}, false);
$window.addEventListener("online", function () {
$rootScope.$apply(function() {
$rootScope.online = true;
// $window.location.reload();
});
}, false);
});
并在cordova 中添加网络信息插件
相关文章:
- 节点不是持久的网络连接
- 检测与流星的3G网络连接
- 如何通过AJAX调用检查网络连接
- 在 JavaScript 中检查网络连接
- 节点.js mysql 查询和网络连接
- 科尔多瓦 IOS 8.1 打开应用程序时如何检查网络连接
- 检查网络连接已连接/已断开
- 使用IONIC的IOS没有网络连接功能问题
- 断开网络连接时出现消息(SamsungSmart电视应用程序)
- 正在检查Cordova和AngularJS中的网络连接状态
- AngularJS/Cordova应用程序中网络连接断开时显示弹出窗口
- 检查javascript中是否存在网络连接
- 什么'当你'I’我失去了网络连接
- 通过Firefox扩展检查网络连接
- 使用ngCordova检查活跃的网络连接,如果在ionic中不是活跃的,就退出应用
- 如何仅在有网络连接的情况下更新屏幕/网站
- 等到网络连接后再启动节点webkit应用
- jQuery.Get将请求排队,直到网络连接可用
- 如何根据网络连接的可用性切换基础层
- 如何根据网络连接的可用性切换基础层