ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
60 lines (50 loc) • 1.82 kB
JavaScript
// 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;
}
};
}]);