UNPKG

ng-cordova

Version:

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

358 lines (271 loc) 10 kB
// install : cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git // link : https://github.com/katzer/cordova-plugin-local-notifications angular.module('ngCordova.plugins.localNotification', []) .factory('$cordovaLocalNotification', ['$q', '$window', '$rootScope', '$timeout', function ($q, $window, $rootScope, $timeout) { document.addEventListener('deviceready', function () { if ($window.cordova && $window.cordova.plugins && $window.cordova.plugins.notification && $window.cordova.plugins.notification.local) { // ----- "Scheduling" events // A local notification was scheduled $window.cordova.plugins.notification.local.on('schedule', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:schedule', notification, state); }); }); // A local notification was triggered $window.cordova.plugins.notification.local.on('trigger', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:trigger', notification, state); }); }); // ----- "Update" events // A local notification was updated $window.cordova.plugins.notification.local.on('update', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:update', notification, state); }); }); // ----- "Clear" events // A local notification was cleared from the notification center $window.cordova.plugins.notification.local.on('clear', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:clear', notification, state); }); }); // All local notifications were cleared from the notification center $window.cordova.plugins.notification.local.on('clearall', function (state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:clearall', state); }); }); // ----- "Cancel" events // A local notification was cancelled $window.cordova.plugins.notification.local.on('cancel', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:cancel', notification, state); }); }); // All local notifications were cancelled $window.cordova.plugins.notification.local.on('cancelall', function (state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:cancelall', state); }); }); // ----- Other events // A local notification was clicked $window.cordova.plugins.notification.local.on('click', function (notification, state) { $timeout(function () { $rootScope.$broadcast('$cordovaLocalNotification:click', notification, state); }); }); } }, false); return { schedule: function (options, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.schedule(options, function (result) { q.resolve(result); }, scope); return q.promise; }, add: function (options, scope) { console.warn('Deprecated: use "schedule" instead.'); var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.schedule(options, function (result) { q.resolve(result); }, scope); return q.promise; }, update: function (options, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.update(options, function (result) { q.resolve(result); }, scope); return q.promise; }, clear: function (ids, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.clear(ids, function (result) { q.resolve(result); }, scope); return q.promise; }, clearAll: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.clearAll(function (result) { q.resolve(result); }, scope); return q.promise; }, cancel: function (ids, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.cancel(ids, function (result) { q.resolve(result); }, scope); return q.promise; }, cancelAll: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.cancelAll(function (result) { q.resolve(result); }, scope); return q.promise; }, isPresent: function (id, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.isPresent(id, function (result) { q.resolve(result); }, scope); return q.promise; }, isScheduled: function (id, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.isScheduled(id, function (result) { q.resolve(result); }, scope); return q.promise; }, isTriggered: function (id, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.isTriggered(id, function (result) { q.resolve(result); }, scope); return q.promise; }, hasPermission: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.hasPermission(function (result) { if (result) { q.resolve(result); } else { q.reject(result); } }, scope); return q.promise; }, registerPermission: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.registerPermission(function (result) { if (result) { q.resolve(result); } else { q.reject(result); } }, scope); return q.promise; }, promptForPermission: function (scope) { console.warn('Deprecated: use "registerPermission" instead.'); var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.registerPermission(function (result) { if (result) { q.resolve(result); } else { q.reject(result); } }, scope); return q.promise; }, getAllIds: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getAllIds(function (result) { q.resolve(result); }, scope); return q.promise; }, getIds: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getIds(function (result) { q.resolve(result); }, scope); return q.promise; }, getScheduledIds: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getScheduledIds(function (result) { q.resolve(result); }, scope); return q.promise; }, getTriggeredIds: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getTriggeredIds(function (result) { q.resolve(result); }, scope); return q.promise; }, get: function (ids, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.get(ids, function (result) { q.resolve(result); }, scope); return q.promise; }, getAll: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getAll(function (result) { q.resolve(result); }, scope); return q.promise; }, getScheduled: function (ids, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getScheduled(ids, function (result) { q.resolve(result); }, scope); return q.promise; }, getAllScheduled: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getAllScheduled(function (result) { q.resolve(result); }, scope); return q.promise; }, getTriggered: function (ids, scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getTriggered(ids, function (result) { q.resolve(result); }, scope); return q.promise; }, getAllTriggered: function (scope) { var q = $q.defer(); scope = scope || null; $window.cordova.plugins.notification.local.getAllTriggered(function (result) { q.resolve(result); }, scope); return q.promise; }, getDefaults: function () { return $window.cordova.plugins.notification.local.getDefaults(); }, setDefaults: function (Object) { $window.cordova.plugins.notification.local.setDefaults(Object); } }; }]);