diff --git a/src/plugins/localnotifications.ts b/src/plugins/localnotifications.ts new file mode 100644 index 00000000..13643116 --- /dev/null +++ b/src/plugins/localnotifications.ts @@ -0,0 +1,268 @@ +import {Plugin, Cordova} from './plugin'; +/** + * @name Local Notifications + * + * Usage: + * ```ts + * // Schedule a single notification + * LocalNotifications.schedule({ + * id: 1, + * text: "Single Notification", + * sound: isAndroid? 'file://sound.mp3' : 'file://beep.caf' + * data: { secret: key } + * }); + * + * + * // Schedule multiple notifications + * LocalNotifications.schedule([{ + * id: 1, + * text: "Multi Notification 1", + * sound: isAndroid ? 'file://sound.mp3' : 'file://beep.caf', + * data: { secret:key } + * },{ + * id: 2, + * title: "Local Notification Example", + * text: "Multi Notification 2", + * icon: "http://example.com/icon.png" + * }]); + * + * + * // Schedule delayed notification + * LocalNotifications.schedule({ + * t ext: "Delayed Notification", + * at: new Date(new Date() + 3600), + * led: "FF0000", + * sound: null + * }); + * + */ +@Plugin({ + plugin: 'cordova-plugin-local-notifications', + pluginRef: 'cordova.plugins.notification.local' +}) +export class LocalNotifications { + + /** + * Schedules a single or multiple notifications + * @param options + */ + @Cordova({ + sync: true + }) + static schedule(options? : Notification) : void {} + + /** + * Updates a previously scheduled notification. Must include the id in the options parameter. + * @param options + */ + @Cordova({ + sync: true + }) + static update(options? : Notification) : void {} + + /** + * Clears single or multiple notifications + * @param notificationId A single notification id, or an array of notification ids. + */ + @Cordova() + static clear(notificationId : any) : Promise {return} + + /** + * Clears all notifications + */ + @Cordova({ + successIndex: 0, + errorIndex: 2 + }) + static clearAll() : Promise {return} + + /** + * Cancels single or multiple notifications + * @param notificationId A single notification id, or an array of notification ids. + */ + @Cordova() + static cancel(notificationId : any) : Promise {return} + + /** + * Cancels all notifications + */ + @Cordova({ + successIndex: 0, + errorIndex: 2 + }) + static cancelAll() : Promise {return} + + /** + * Checks presence of a notification + * @param notificationId + */ + @Cordova() + static isPresent (notificationId : number) : Promise {return} + + /** + * Checks is a notification is scheduled + * @param notificationId + */ + @Cordova() + static isScheduled (notificationId : number) : Promise {return} + + /** + * Checks if a notification is triggered + * @param notificationId + */ + @Cordova() + static isTriggered (notificationId : number) : Promise {return} + + /** + * Get all the notification ids + */ + @Cordova() + static getAllIds () : Promise> {return} + + /** + * Get the ids of triggered notifications + */ + @Cordova() + static getTriggeredIds () : Promise> {return} + + /** + * Get the ids of scheduled notifications + */ + @Cordova() + static getScheduledIds () : Promise> {return} + + /** + * Get a notification object + * @param notificationId The id of the notification to get + */ + @Cordova() + static get (notificationId : any) : Promise {return} + + /** + * Get a scheduled notification object + * @param notificationId The id of the notification to get + */ + @Cordova() + static getScheduled (notificationId : any) : Promise {return} + + /** + * Get a triggered notification object + * @param notificationId The id of the notification to get + */ + @Cordova() + static getTriggered (notificationId : any) : Promise {return} + + /** + * Get all notification objects + */ + @Cordova() + static getAll() : Promise> {return} + + /** + * Get all scheduled notification objects + */ + @Cordova() + static getAllScheduled() : Promise> {return} + + /** + * Get all triggered notification objects + */ + @Cordova() + static getAllTriggered() : Promise> {return} + + + /** + * Sets a callback for a specific event + * @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall + * @param callback Call back function. All events return notification and state parameter. clear and clearall return state parameter only. + */ + @Cordova({ + sync: true + }) + static on(eventName : string, callback : any) : void {} + + +} + +interface Notification { + + /** + * A unique identifier required to clear, cancel, update or retrieve the local notification in the future + * Default: 0 + */ + id : number, + + /** + * First row of the notification + * Default: Empty string (iOS) or the app name (Android) + */ + title : string, + + /** + * Second row of the notification + * Default: Empty string + */ + text : string, + + /** + * The interval at which to reschedule the local notification. That can be a value of second, minute, hour, day, week, month or year + * Default: 0 (which means that the system triggers the local notification once) + */ + every : string, + + /** + * The date and time when the system should deliver the local notification. If the specified value is nil or is a date in the past, the local notification is delivered immediately. + * Default: now ~ new Date() + */ + at : any, + firstAt : any, + + /** + * The number currently set as the badge of the app icon in Springboard (iOS) or at the right-hand side of the local notification (Android) + * Default: 0 (which means don't show a number) + */ + badge : number, + + /** + * Uri of the file containing the sound to play when an alert is displayed + * Default: res://platform_default + */ + sound : string, + + /** + * Arbitrary data, objects will be encoded to JSON string + * Default: null + */ + data : any, + + /** + * ANDROID ONLY + * Uri of the icon that is shown in the ticker and notification + * Default: res://icon + */ + icon : string, + + /** + * ANDROID ONLY + * Uri of the resource (only res://) to use in the notification layouts. Different classes of devices may return different sizes + * Default: res://ic_popup_reminder + */ + smallIcon : string, + + + /** + * ANDROID ONLY + * Ongoing notifications differ from regular notifications in the following ways: + * - They are sorted above the regular notifications in the notification panel + * - They do not have an 'X' close button, and are not affected by the "Clear all" button + * Default: false + */ + ongoing : boolean, + + /** + * ANDROID ONLY + * ARGB value that you would like the LED on the device to blink + * Default: FFFFFF + */ + led : string +} \ No newline at end of file