UNPKG

ng-cordova

Version:

[ngCordova](http://ngcordova.com/) ==========

65 lines (54 loc) 2.03 kB
// install : cordova plugin add cordova-plugin-network-information // link : https://github.com/apache/cordova-plugin-network-information /* globals Connection: true */ angular.module('ngCordova.plugins.network', []) .factory('$cordovaNetwork', ['$rootScope', '$timeout', function ($rootScope, $timeout) { /** * Fires offline a event */ var offlineEvent = function () { var networkState = navigator.connection.type; $timeout(function () { $rootScope.$broadcast('$cordovaNetwork:offline', networkState); }); }; /** * Fires online a event */ var onlineEvent = function () { var networkState = navigator.connection.type; $timeout(function () { $rootScope.$broadcast('$cordovaNetwork:online', networkState); }); }; document.addEventListener('deviceready', function () { if (navigator.connection) { document.addEventListener('offline', offlineEvent, false); document.addEventListener('online', onlineEvent, false); } }); return { getNetwork: function () { return navigator.connection.type; }, isOnline: function () { var networkState = navigator.connection.type; return networkState !== Connection.UNKNOWN && networkState !== Connection.NONE; }, isOffline: function () { var networkState = navigator.connection.type; return networkState === Connection.UNKNOWN || networkState === Connection.NONE; }, clearOfflineWatch: function () { document.removeEventListener('offline', offlineEvent); $rootScope.$$listeners['$cordovaNetwork:offline'] = []; }, clearOnlineWatch: function () { document.removeEventListener('online', onlineEvent); $rootScope.$$listeners['$cordovaNetwork:online'] = []; } }; }]) .run(['$injector', function ($injector) { $injector.get('$cordovaNetwork'); //ensure the factory always gets initialised }]);