Loading www/local-notification.js +171 −131 Changes for www/local-notification.js: 171 added lines, 131 removed lines. Original line number Diff line number Diff line Loading @@ -122,67 +122,15 @@ exports.add = function (props, callback, scope) { this.registerPermission(function(granted) { if (granted) { exec(fn, null, 'LocalNotification', 'add', [options]); this.exec('add', options, callback, scope); } }); return options.id; }; /** * Add new entries to the registry (more than one) * * @param {Object} options * The notification properties * @param {Function} callback * A function to be called after the notification has been added * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.addMultiple = function (notifications, callback, scope) { var length = notifications.length; var notificationsMerged = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var options = this.mergeWithDefaults(notifications[i]); if (options.id) { options.id = options.id.toString(); } if (options.date === undefined) { options.date = new Date(); } if (options.title) { options.title = options.title.toString(); } if (options.message) { options.message = options.message.toString(); } if (typeof options.date == 'object') { options.date = Math.round(options.date.getTime()/1000); } if (['WinCE', 'Win32NT'].indexOf(device.platform) > -1) { callbackFn = function (cmd) { eval(cmd); }; } notificationsMerged.push(options); } cordova.exec(callbackFn, null, 'LocalNotification', 'addMultiple', notificationsMerged); }, this); return options.id; }; /** * Update existing notification (currently android only) * Update existing notification specified by ID in options. * * @param {Object} options * The notification properties to update Loading @@ -190,13 +138,9 @@ exports.addMultiple = function (notifications, callback, scope) { * A function to be called after the notification has been updated * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.update = function (updates, callback, scope) { callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'update', [updates]); exports.update = function (options, callback, scope) { this.exec('update', options, callback, scope); }; /** Loading @@ -210,31 +154,9 @@ exports.update = function (updates, callback, scope) { * The scope for the callback function */ exports.clear = function (id, callback, scope) { var id = id.toString(), callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clear', [id]); }; var notId = (id || '0').toString(); /** * Clear the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been cleared. * @param {Object} scope * The scope for the callback function */ exports.clearMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearMultiple', [ids]); this.exec('clear', notId, callback, scope); }; /** Loading @@ -246,9 +168,7 @@ exports.clearMultiple = function (ids, callback, scope) { * The scope for the callback function */ exports.clearAll = function (callback, scope) { var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearAll', []); this.exec('clearAll', null, callback, scope); }; /** Loading @@ -262,31 +182,9 @@ exports.clearAll = function (callback, scope) { * The scope for the callback function */ exports.cancel = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'cancel', [(id || '0').toString()]); }; /** * Cancel the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been canceled * @param {Object} scope * The scope for the callback function */ exports.cancelMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'cancelMultiple', [ids]); this.exec('cancel', notId, callback, scope); }; /** Loading @@ -298,9 +196,7 @@ exports.cancelMultiple = function (ids, callback, scope) { * The scope for the callback function */ exports.cancelAll = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'cancelAll', []); this.exec('cancelAll', null, callback, scope); }; /** Loading @@ -312,9 +208,7 @@ exports.cancelAll = function (callback, scope) { * The scope for the callback function */ exports.getScheduledIds = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'getScheduledIds', []); this.exec('getScheduledIds', null, callback, scope); }; /** Loading @@ -328,9 +222,9 @@ exports.getScheduledIds = function (callback, scope) { * The scope for the callback function */ exports.isScheduled = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'isScheduled', [id.toString()]); this.exec('isScheduled', notId, callback, scope); }; /** Loading @@ -342,9 +236,7 @@ exports.isScheduled = function (id, callback, scope) { * The scope for the callback function */ exports.getTriggeredIds = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'getTriggeredIds', []); this.exec('getTriggeredIds', null, callback, scope); }; /** Loading @@ -358,9 +250,9 @@ exports.getTriggeredIds = function (callback, scope) { * The scope for the callback function */ exports.isTriggered = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'isTriggered', [id.toString()]); this.exec('isTriggered', notId, callback, scope); }; /** Loading Loading @@ -401,11 +293,122 @@ exports.registerPermission = function (callback, scope) { exec(fn, null, 'LocalNotification', 'registerPermission', []); }; /** * @deprecated * * Register permission to show notifications if not already granted. * * @param {Function} callback * The function to be exec as the callback * @param {Object?} scope * The callback function's scope */ exports.promptForPermission = function (callback, scope) { console.warn('Depreated: Please use `notification.local.registerPermission` instead.'); console.warn( '`notification.local.promptForPermission` is deprecated,', 'please use `notification.local.registerPermission`.' ); exports.registerPermission.apply(this, arguments); }; /** * Add new entries to the registry (more than one) * * @param {Object} options * The notification properties * @param {Function} callback * A function to be called after the notification has been added * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.addMultiple = function (notifications, callback, scope) { var length = notifications.length; var notificationsMerged = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var options = this.mergeWithDefaults(notifications[i]); if (options.id) { options.id = options.id.toString(); } if (options.date === undefined) { options.date = new Date(); } if (options.title) { options.title = options.title.toString(); } if (options.message) { options.message = options.message.toString(); } if (typeof options.date == 'object') { options.date = Math.round(options.date.getTime()/1000); } if (['WinCE', 'Win32NT'].indexOf(device.platform) > -1) { callbackFn = function (cmd) { eval(cmd); }; } notificationsMerged.push(options); } cordova.exec(callbackFn, null, 'LocalNotification', 'addMultiple', notificationsMerged); return options.id; }; /** * Clear the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been cleared. * @param {Object} scope * The scope for the callback function */ exports.clearMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearMultiple', [ids]); }; /** * Cancel the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been canceled * @param {Object} scope * The scope for the callback function */ exports.cancelMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'cancelMultiple', [ids]); }; /** * Occurs when a notification was added. * Loading @@ -415,8 +418,10 @@ exports.promptForPermission = function (callback, scope) { * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onadd = function (id, state, json) {}; exports.onadd = function (id, state, json, data) {}; /** * Occurs when the notification is triggered. Loading @@ -427,8 +432,10 @@ exports.onadd = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.ontrigger = function (id, state, json) {}; exports.ontrigger = function (id, state, json, data) {}; /** * Fires after the notification was clicked. Loading @@ -439,8 +446,10 @@ exports.ontrigger = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onclick = function (id, state, json) {}; exports.onclick = function (id, state, json, data) {}; /** * Fires if the notification was canceled. Loading @@ -451,8 +460,10 @@ exports.onclick = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.oncancel = function (id, state, json) {}; exports.oncancel = function (id, state, json, data) {}; /** * Get fired when the notification was cleared. Loading @@ -463,8 +474,10 @@ exports.oncancel = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onclear = function (id, state, json) {}; exports.onclear = function (id, state, json, data) {}; /** Loading Loading @@ -583,3 +596,30 @@ exports.createCallbackFn = function (callbackFn, scope) { callbackFn.apply(scope || this, arguments); }; }; /** * @private * * Executes the native counterpart. * * @param {String} action * The name of the action * @param args[] * Array of arguments * @param {Function} callback * The callback function * @param {Object} scope * The scope for the function */ exports.exec = function (action, args, callback, scope) { var fn = this.createCallbackFn(callback, scope), params = []; if (Array.isArray(args)) { params = args; } else if (args) { params.push(args); } exec(fn, null, 'LocalNotification', action, params); }; Loading
www/local-notification.js +171 −131 Changes for www/local-notification.js: 171 added lines, 131 removed lines. Original line number Diff line number Diff line Loading @@ -122,67 +122,15 @@ exports.add = function (props, callback, scope) { this.registerPermission(function(granted) { if (granted) { exec(fn, null, 'LocalNotification', 'add', [options]); this.exec('add', options, callback, scope); } }); return options.id; }; /** * Add new entries to the registry (more than one) * * @param {Object} options * The notification properties * @param {Function} callback * A function to be called after the notification has been added * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.addMultiple = function (notifications, callback, scope) { var length = notifications.length; var notificationsMerged = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var options = this.mergeWithDefaults(notifications[i]); if (options.id) { options.id = options.id.toString(); } if (options.date === undefined) { options.date = new Date(); } if (options.title) { options.title = options.title.toString(); } if (options.message) { options.message = options.message.toString(); } if (typeof options.date == 'object') { options.date = Math.round(options.date.getTime()/1000); } if (['WinCE', 'Win32NT'].indexOf(device.platform) > -1) { callbackFn = function (cmd) { eval(cmd); }; } notificationsMerged.push(options); } cordova.exec(callbackFn, null, 'LocalNotification', 'addMultiple', notificationsMerged); }, this); return options.id; }; /** * Update existing notification (currently android only) * Update existing notification specified by ID in options. * * @param {Object} options * The notification properties to update Loading @@ -190,13 +138,9 @@ exports.addMultiple = function (notifications, callback, scope) { * A function to be called after the notification has been updated * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.update = function (updates, callback, scope) { callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'update', [updates]); exports.update = function (options, callback, scope) { this.exec('update', options, callback, scope); }; /** Loading @@ -210,31 +154,9 @@ exports.update = function (updates, callback, scope) { * The scope for the callback function */ exports.clear = function (id, callback, scope) { var id = id.toString(), callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clear', [id]); }; var notId = (id || '0').toString(); /** * Clear the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been cleared. * @param {Object} scope * The scope for the callback function */ exports.clearMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearMultiple', [ids]); this.exec('clear', notId, callback, scope); }; /** Loading @@ -246,9 +168,7 @@ exports.clearMultiple = function (ids, callback, scope) { * The scope for the callback function */ exports.clearAll = function (callback, scope) { var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearAll', []); this.exec('clearAll', null, callback, scope); }; /** Loading @@ -262,31 +182,9 @@ exports.clearAll = function (callback, scope) { * The scope for the callback function */ exports.cancel = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'cancel', [(id || '0').toString()]); }; /** * Cancel the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been canceled * @param {Object} scope * The scope for the callback function */ exports.cancelMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'cancelMultiple', [ids]); this.exec('cancel', notId, callback, scope); }; /** Loading @@ -298,9 +196,7 @@ exports.cancelMultiple = function (ids, callback, scope) { * The scope for the callback function */ exports.cancelAll = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'cancelAll', []); this.exec('cancelAll', null, callback, scope); }; /** Loading @@ -312,9 +208,7 @@ exports.cancelAll = function (callback, scope) { * The scope for the callback function */ exports.getScheduledIds = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'getScheduledIds', []); this.exec('getScheduledIds', null, callback, scope); }; /** Loading @@ -328,9 +222,9 @@ exports.getScheduledIds = function (callback, scope) { * The scope for the callback function */ exports.isScheduled = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'isScheduled', [id.toString()]); this.exec('isScheduled', notId, callback, scope); }; /** Loading @@ -342,9 +236,7 @@ exports.isScheduled = function (id, callback, scope) { * The scope for the callback function */ exports.getTriggeredIds = function (callback, scope) { var fn = this.createCallbackFn(callback, scope); exec(fn, null, 'LocalNotification', 'getTriggeredIds', []); this.exec('getTriggeredIds', null, callback, scope); }; /** Loading @@ -358,9 +250,9 @@ exports.getTriggeredIds = function (callback, scope) { * The scope for the callback function */ exports.isTriggered = function (id, callback, scope) { var fn = this.createCallbackFn(callback, scope); var notId = (id || '0').toString(); exec(fn, null, 'LocalNotification', 'isTriggered', [id.toString()]); this.exec('isTriggered', notId, callback, scope); }; /** Loading Loading @@ -401,11 +293,122 @@ exports.registerPermission = function (callback, scope) { exec(fn, null, 'LocalNotification', 'registerPermission', []); }; /** * @deprecated * * Register permission to show notifications if not already granted. * * @param {Function} callback * The function to be exec as the callback * @param {Object?} scope * The callback function's scope */ exports.promptForPermission = function (callback, scope) { console.warn('Depreated: Please use `notification.local.registerPermission` instead.'); console.warn( '`notification.local.promptForPermission` is deprecated,', 'please use `notification.local.registerPermission`.' ); exports.registerPermission.apply(this, arguments); }; /** * Add new entries to the registry (more than one) * * @param {Object} options * The notification properties * @param {Function} callback * A function to be called after the notification has been added * @param {Object} scope * The scope for the callback function * * @return {Number} * The notification's ID */ exports.addMultiple = function (notifications, callback, scope) { var length = notifications.length; var notificationsMerged = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var options = this.mergeWithDefaults(notifications[i]); if (options.id) { options.id = options.id.toString(); } if (options.date === undefined) { options.date = new Date(); } if (options.title) { options.title = options.title.toString(); } if (options.message) { options.message = options.message.toString(); } if (typeof options.date == 'object') { options.date = Math.round(options.date.getTime()/1000); } if (['WinCE', 'Win32NT'].indexOf(device.platform) > -1) { callbackFn = function (cmd) { eval(cmd); }; } notificationsMerged.push(options); } cordova.exec(callbackFn, null, 'LocalNotification', 'addMultiple', notificationsMerged); return options.id; }; /** * Clear the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been cleared. * @param {Object} scope * The scope for the callback function */ exports.clearMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'clearMultiple', [ids]); }; /** * Cancel the specified notifications (more than one). * * @param {String} id * The ID of the notification * @param {Function} callback * A function to be called after the notifications has been canceled * @param {Object} scope * The scope for the callback function */ exports.cancelMultiple = function (ids, callback, scope) { var length = ids.length; var idArray = new Array(), callbackFn = this.createCallbackFn(callback, scope); for (var i=0;i<length;i++){ var id = ids[i].toString(); idArray.push(id); } var callbackFn = this.createCallbackFn(callback, scope); cordova.exec(callbackFn, null, 'LocalNotification', 'cancelMultiple', [ids]); }; /** * Occurs when a notification was added. * Loading @@ -415,8 +418,10 @@ exports.promptForPermission = function (callback, scope) { * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onadd = function (id, state, json) {}; exports.onadd = function (id, state, json, data) {}; /** * Occurs when the notification is triggered. Loading @@ -427,8 +432,10 @@ exports.onadd = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.ontrigger = function (id, state, json) {}; exports.ontrigger = function (id, state, json, data) {}; /** * Fires after the notification was clicked. Loading @@ -439,8 +446,10 @@ exports.ontrigger = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onclick = function (id, state, json) {}; exports.onclick = function (id, state, json, data) {}; /** * Fires if the notification was canceled. Loading @@ -451,8 +460,10 @@ exports.onclick = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.oncancel = function (id, state, json) {}; exports.oncancel = function (id, state, json, data) {}; /** * Get fired when the notification was cleared. Loading @@ -463,8 +474,10 @@ exports.oncancel = function (id, state, json) {}; * Either "foreground" or "background" * @param {String} json * A custom (JSON) string * @param {Object} data * The notification properties */ exports.onclear = function (id, state, json) {}; exports.onclear = function (id, state, json, data) {}; /** Loading Loading @@ -583,3 +596,30 @@ exports.createCallbackFn = function (callbackFn, scope) { callbackFn.apply(scope || this, arguments); }; }; /** * @private * * Executes the native counterpart. * * @param {String} action * The name of the action * @param args[] * Array of arguments * @param {Function} callback * The callback function * @param {Object} scope * The scope for the function */ exports.exec = function (action, args, callback, scope) { var fn = this.createCallbackFn(callback, scope), params = []; if (Array.isArray(args)) { params = args; } else if (args) { params.push(args); } exec(fn, null, 'LocalNotification', action, params); };