MOBILE-2831 core: Fix local notifications in iOS
parent
f3e72d283a
commit
10f54e7149
|
@ -939,6 +939,8 @@ export class LocalNotificationsMock extends LocalNotifications {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Schedules or updates a single or multiple notifications.
|
* Schedules or updates a single or multiple notifications.
|
||||||
|
* We only support using the "at" property to trigger the notification. Other properties like "in" or "every"
|
||||||
|
* aren't supported yet.
|
||||||
*
|
*
|
||||||
* @param {ILocalNotification | Array<ILocalNotification>} [options] Notification or notifications.
|
* @param {ILocalNotification | Array<ILocalNotification>} [options] Notification or notifications.
|
||||||
* @param {string} [eventName] Name of the event: schedule or update.
|
* @param {string} [eventName] Name of the event: schedule or update.
|
||||||
|
@ -978,15 +980,6 @@ export class LocalNotificationsMock extends LocalNotifications {
|
||||||
|
|
||||||
// Launch the trigger event.
|
// Launch the trigger event.
|
||||||
this.fireEvent('trigger', notification);
|
this.fireEvent('trigger', notification);
|
||||||
|
|
||||||
if (notification.trigger.every && this.scheduled[notification.id] &&
|
|
||||||
!this.scheduled[notification.id].interval) {
|
|
||||||
|
|
||||||
const interval = this.parseInterval(notification.trigger.every);
|
|
||||||
if (interval > 0) {
|
|
||||||
this.scheduled[notification.id].interval = setInterval(trigger, interval);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.scheduled[notification.id].timeout = setTimeout(trigger, toTriggerTime);
|
this.scheduled[notification.id].timeout = setTimeout(trigger, toTriggerTime);
|
||||||
|
|
|
@ -191,6 +191,10 @@ export class CoreLocalNotificationsProvider {
|
||||||
* @return {Promise<any>} Promise resolved when done.
|
* @return {Promise<any>} Promise resolved when done.
|
||||||
*/
|
*/
|
||||||
protected createDefaultChannel(): Promise<any> {
|
protected createDefaultChannel(): Promise<any> {
|
||||||
|
if (!this.platform.is('android')) {
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
|
|
||||||
return this.push.createChannel({
|
return this.push.createChannel({
|
||||||
id: 'default-channel-id',
|
id: 'default-channel-id',
|
||||||
description: this.translate.instant('addon.calendar.calendarreminders'),
|
description: this.translate.instant('addon.calendar.calendarreminders'),
|
||||||
|
@ -293,7 +297,8 @@ export class CoreLocalNotificationsProvider {
|
||||||
isAvailable(): boolean {
|
isAvailable(): boolean {
|
||||||
const win = <any> window;
|
const win = <any> window;
|
||||||
|
|
||||||
return this.appProvider.isDesktop() || !!(win.plugin && win.plugin.notification && win.plugin.notification.local);
|
return this.appProvider.isDesktop() || !!(win.cordova && win.cordova.plugins && win.cordova.plugins.notification &&
|
||||||
|
win.cordova.plugins.notification.local);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -506,6 +511,8 @@ export class CoreLocalNotificationsProvider {
|
||||||
delete notification.sound; // Use default value.
|
delete notification.sound; // Use default value.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification.foreground = true;
|
||||||
|
|
||||||
// Remove from triggered, since the notification could be in there with a different time.
|
// Remove from triggered, since the notification could be in there with a different time.
|
||||||
this.removeTriggered(notification.id);
|
this.removeTriggered(notification.id);
|
||||||
this.localNotifications.schedule(notification);
|
this.localNotifications.schedule(notification);
|
||||||
|
|
Loading…
Reference in New Issue