UNPKG

ng-cordova

Version:

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

60 lines (50 loc) 1.82 kB
// install : cordova plugin add https://github.com/phonegap-build/PushPlugin.git // link : https://github.com/phonegap-build/PushPlugin angular.module('ngCordova.plugins.push', []) .factory('$cordovaPush', ['$q', '$window', '$rootScope', '$timeout', function ($q, $window, $rootScope, $timeout) { return { onNotification: function (notification) { $timeout(function () { $rootScope.$broadcast('$cordovaPush:notificationReceived', notification); }); }, register: function (config) { var q = $q.defer(); var injector; if (config !== undefined && config.ecb === undefined) { if (document.querySelector('[ng-app]') === null) { injector = 'document.body'; } else { injector = 'document.querySelector(\'[ng-app]\')'; } config.ecb = 'angular.element(' + injector + ').injector().get(\'$cordovaPush\').onNotification'; } $window.plugins.pushNotification.register(function (token) { q.resolve(token); }, function (error) { q.reject(error); }, config); return q.promise; }, unregister: function (options) { var q = $q.defer(); $window.plugins.pushNotification.unregister(function (result) { q.resolve(result); }, function (error) { q.reject(error); }, options); return q.promise; }, // iOS only setBadgeNumber: function (number) { var q = $q.defer(); $window.plugins.pushNotification.setApplicationIconBadgeNumber(function (result) { q.resolve(result); }, function (error) { q.reject(error); }, number); return q.promise; } }; }]);