mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-08-04 00:00:08 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe96b472fd |
@@ -1,18 +1,196 @@
|
||||
import { Cordova, AwesomeCordovaNativePlugin, Plugin } from '@awesome-cordova-plugins/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export interface BackgroundFetchConfig {
|
||||
/**
|
||||
* Authorization status of the Background Fetch API. Returned by `BackgroundFetch#configure` and `BackgroundFetch#status`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
export enum BackgroundFetchStatus {
|
||||
/**
|
||||
* Background fetch updates are unavailable and the user cannot enable them again.
|
||||
* For example, this status can occur when parental controls are in effect for the current user.
|
||||
*/
|
||||
STATUS_RESTRICTED = 0,
|
||||
/**
|
||||
* The user explicitly disabled background behavior for this app or for the whole system.
|
||||
*/
|
||||
STATUS_DENIED = 1,
|
||||
/**
|
||||
* Background fetch is available and enabled.
|
||||
*/
|
||||
STATUS_AVAILABLE = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* [Android only] Network type constraint for scheduled tasks. Used with `BackgroundFetchConfig#requiredNetworkType`
|
||||
* and `BackgroundFetchTaskConfig#requiredNetworkType`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
export enum BackgroundFetchNetworkType {
|
||||
/**
|
||||
* No network constraint. The task will run regardless of network state.
|
||||
*/
|
||||
NONE = 0,
|
||||
/**
|
||||
* The task requires any active network connection.
|
||||
*/
|
||||
ANY = 1,
|
||||
/**
|
||||
* The task requires an unmetered (e.g. Wi-Fi) network connection.
|
||||
*/
|
||||
UNMETERED = 2,
|
||||
/**
|
||||
* The task requires a non-roaming network connection.
|
||||
*/
|
||||
NOT_ROAMING = 3,
|
||||
/**
|
||||
* The task requires a cellular (mobile data) network connection.
|
||||
*/
|
||||
CELLULAR = 4,
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration properties shared by both `BackgroundFetchConfig` and `BackgroundFetchTaskConfig`.
|
||||
*
|
||||
* Aside from `stopOnTerminate`, all properties are Android-only. iOS manages background execution
|
||||
* through its own system-controlled Background Fetch mechanism and does not support these constraints.
|
||||
*/
|
||||
export interface BackgroundFetchAbstractConfig {
|
||||
/**
|
||||
* Set true to cease background-fetch from operating after user "closes" the app. Defaults to true.
|
||||
*/
|
||||
stopOnTerminate?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to initiate background-fetch events when the device is rebooted. Defaults to `false`.
|
||||
* NOTE: `startOnBoot` requires `stopOnTerminate: false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
startOnBoot?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to enable the Headless mechanism for handling fetch events after app termination.
|
||||
* Defaults to `false`. NOTE: Requires `stopOnTerminate: false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
enableHeadless?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] By default, the plugin uses Android's `JobScheduler` when possible and falls back to
|
||||
* `AlarmManager` for older devices. Set `true` to always use `AlarmManager` regardless of API level.
|
||||
* Defaults to `false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
forceAlarmManager?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Specify the kind of network connectivity required to run this task. Defaults to
|
||||
* `BackgroundFetchNetworkType.NONE`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
requiredNetworkType?: BackgroundFetchNetworkType;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to require the device's battery level to be above the "low battery" threshold
|
||||
* before running this task. Defaults to `false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
requiresBatteryNotLow?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to require the device's available storage to be above the "low storage"
|
||||
* threshold before running this task. Defaults to `false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
requiresStorageNotLow?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to require the device to be charging (or connected to permanent power, such
|
||||
* as an Android TV device) before running this task. Defaults to `false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
requiresCharging?: boolean;
|
||||
|
||||
/**
|
||||
* [Android only] Set `true` to require the device to be idle (not actively used) before running this task.
|
||||
* Defaults to `false`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
requiresDeviceIdle?: boolean;
|
||||
}
|
||||
|
||||
export interface BackgroundFetchConfig extends BackgroundFetchAbstractConfig {
|
||||
/**
|
||||
* The minimum interval in **minutes** between background-fetch events. Defaults to `15` minutes. The
|
||||
* minimum allowed value is `15` minutes.
|
||||
*
|
||||
* NOTE: The OS does not guarantee fetch events will fire at exactly this interval. iOS adjusts the
|
||||
* interval based on usage patterns and system conditions. This value is a *minimum*, not a schedule.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
minimumFetchInterval?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for a custom scheduled task, provided to `BackgroundFetch#scheduleTask`.
|
||||
*
|
||||
* @since 7.0.0
|
||||
*/
|
||||
export interface BackgroundFetchTaskConfig extends BackgroundFetchAbstractConfig {
|
||||
/**
|
||||
* A unique identifier for this task. Use the same `taskId` with `BackgroundFetch#finish` to signal
|
||||
* completion and with `BackgroundFetch#stopTask` to cancel it. Use reverse-domain notation to avoid
|
||||
* collisions (e.g. `'com.foo.sync'`).
|
||||
*/
|
||||
taskId: string;
|
||||
|
||||
/**
|
||||
* The minimum delay in **milliseconds** before this task runs.
|
||||
*
|
||||
* NOTE: On iOS, the system may delay the task beyond this value depending on device conditions. On
|
||||
* Android, `JobScheduler` treats this as a minimum delay.
|
||||
*/
|
||||
delay: number;
|
||||
|
||||
/**
|
||||
* Set `true` to schedule a repeating task. Defaults to `false` (one-shot).
|
||||
*/
|
||||
periodic?: boolean;
|
||||
|
||||
/**
|
||||
* [iOS only] Set `true` to require a network connection before running this task. On Android, use
|
||||
* `requiredNetworkType` instead.
|
||||
*/
|
||||
requiresNetworkConnectivity?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Background Fetch
|
||||
* @description
|
||||
* iOS Background Fetch Implementation. See: https://developer.apple.com/reference/uikit/uiapplication#1657399
|
||||
* iOS Background Fetch is basically an API which wakes up your app about every 15 minutes (during the user's prime-time hours) and provides your app exactly 30s of background running-time. This plugin will execute your provided callbackFn whenever a background-fetch event occurs. There is no way to increase the rate which a fetch-event occurs and this plugin sets the rate to the most frequent possible value of UIApplicationBackgroundFetchIntervalMinimum -- iOS determines the rate automatically based upon device usage and time-of-day (ie: fetch-rate is about ~15min during prime-time hours; less frequently when the user is presumed to be sleeping, at 3am for example).
|
||||
* Cross-platform Background Fetch implementation. This plugin will execute your provided callbackFn
|
||||
* whenever a background-fetch event occurs.
|
||||
*
|
||||
* ### iOS
|
||||
* There is no way to increase the rate which a fetch-event occurs and this plugin sets the rate to the
|
||||
* most frequent possible value -- iOS determines the rate automatically based upon device usage and
|
||||
* time-of-day (ie: fetch-rate is about ~15min during prime-time hours; less frequently when the user is
|
||||
* presumed to be sleeping).
|
||||
*
|
||||
* ### Android
|
||||
* Uses `JobScheduler` (API 21+) or `AlarmManager` to schedule periodic callbacks. Additional constraints
|
||||
* (network, charging, idle) can be set via `BackgroundFetchConfig`.
|
||||
*
|
||||
* For more detail, please see https://github.com/transistorsoft/cordova-plugin-background-fetch
|
||||
* @usage
|
||||
*
|
||||
@@ -23,17 +201,23 @@ export interface BackgroundFetchConfig {
|
||||
* constructor(private backgroundFetch: BackgroundFetch) {
|
||||
*
|
||||
* const config: BackgroundFetchConfig = {
|
||||
* minimumFetchInterval: 15,
|
||||
* stopOnTerminate: false, // Set true to cease background-fetch from operating after user "closes" the app. Defaults to true.
|
||||
* }
|
||||
*
|
||||
* backgroundFetch.configure(config)
|
||||
* .then(() => {
|
||||
* console.log('Background Fetch initialized');
|
||||
* backgroundFetch.configure(config, (taskId: string) => {
|
||||
*
|
||||
* this.backgroundFetch.finish();
|
||||
* console.log('Background Fetch event received', taskId);
|
||||
*
|
||||
* })
|
||||
* .catch(e => console.log('Error initializing background fetch', e));
|
||||
* this.backgroundFetch.finish(taskId);
|
||||
*
|
||||
* }, (taskId: string) => {
|
||||
* // OS has signalled that remaining background time is about to expire.
|
||||
* console.log('Background Fetch TIMEOUT', taskId);
|
||||
* this.backgroundFetch.finish(taskId);
|
||||
* }).then((status) => {
|
||||
* console.log('Background Fetch initialized', status);
|
||||
* }).catch(e => console.log('Error initializing background fetch', e));
|
||||
*
|
||||
* // Start the background-fetch API. Your callbackFn provided to #configure will be executed each time a background-fetch event occurs. NOTE the #configure method automatically calls #start. You do not have to call this method after you #configure the plugin
|
||||
* backgroundFetch.start();
|
||||
@@ -47,26 +231,38 @@ export interface BackgroundFetchConfig {
|
||||
* ```
|
||||
* @interfaces
|
||||
* BackgroundFetchConfig
|
||||
* BackgroundFetchTaskConfig
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'BackgroundFetch',
|
||||
plugin: 'cordova-plugin-background-fetch',
|
||||
pluginRef: 'BackgroundFetch',
|
||||
repo: 'https://github.com/transistorsoft/cordova-plugin-background-fetch',
|
||||
platforms: ['iOS'],
|
||||
platforms: ['Android', 'iOS'],
|
||||
})
|
||||
@Injectable()
|
||||
export class BackgroundFetch extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* Configures the plugin's fetch callbackFn
|
||||
* Configures the plugin's fetch callbackFn.
|
||||
*
|
||||
* Calling `configure` automatically starts background-fetch (equivalent to calling `#start` immediately
|
||||
* after configuration).
|
||||
*
|
||||
* @param {BackgroundFetchConfig} config Configuration for plugin
|
||||
* @param {Function} [onEvent] Callback fired when a background-fetch event is received. The `taskId`
|
||||
* string identifies which task fired -- pass it to `#finish` when done. Required as of plugin `7.0.0`.
|
||||
* @param {Function} [onTimeout] Callback fired when the OS signals that remaining background time is
|
||||
* about to expire. Call `#finish` immediately. Added in plugin `7.0.0`.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse',
|
||||
otherPromise: true,
|
||||
})
|
||||
configure(config: BackgroundFetchConfig): Promise<any> {
|
||||
configure(
|
||||
config: BackgroundFetchConfig,
|
||||
onEvent?: (taskId: string) => void,
|
||||
onTimeout?: (taskId: string) => void
|
||||
): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -110,4 +306,33 @@ export class BackgroundFetch extends AwesomeCordovaNativePlugin {
|
||||
status(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedule a custom one-shot or periodic background task in addition to the default fetch callback
|
||||
* registered with `#configure`.
|
||||
*
|
||||
* Custom tasks fire the same callback registered via `#configure`'s `onEvent` argument, with their
|
||||
* unique `taskId`. Use `#finish` with that `taskId` to signal completion.
|
||||
*
|
||||
* @param {BackgroundFetchTaskConfig} config Task configuration, including a unique `taskId` and a
|
||||
* minimum `delay` in milliseconds.
|
||||
* @returns {Promise<any>}
|
||||
* @since 7.0.0
|
||||
*/
|
||||
@Cordova()
|
||||
scheduleTask(config: BackgroundFetchTaskConfig): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel a specific task previously scheduled via `#scheduleTask`, identified by its `taskId`.
|
||||
*
|
||||
* @param taskId The identifier of the scheduled task to stop.
|
||||
* @returns {Promise<any>}
|
||||
* @since 7.0.0
|
||||
*/
|
||||
@Cordova()
|
||||
stopTask(taskId: string): Promise<any> {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,75 +16,6 @@ export enum ELocalNotificationTriggerUnit {
|
||||
WEEK_OF_MONTH = 'weekOfMonth',
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Values for the `androidAlarmType` property.
|
||||
*
|
||||
* @see https://developer.android.com/develop/background-work/services/alarms/schedule#type
|
||||
*/
|
||||
export enum ELocalNotificationAndroidAlarmType {
|
||||
RTC_WAKEUP = 'RTC_WAKEUP',
|
||||
RTC = 'RTC',
|
||||
/** Not supported */
|
||||
ELAPSED_REALTIME_WAKEUP = 'ELAPSED_REALTIME_WAKEUP',
|
||||
/** Not supported */
|
||||
ELAPSED_REALTIME = 'ELAPSED_REALTIME',
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Values for the `androidChannelImportance` property.
|
||||
*
|
||||
* @see https://developer.android.com/develop/ui/views/notifications#importance
|
||||
*/
|
||||
export enum ELocalNotificationAndroidChannelImportance {
|
||||
IMPORTANCE_NONE = 'IMPORTANCE_NONE',
|
||||
IMPORTANCE_MIN = 'IMPORTANCE_MIN',
|
||||
IMPORTANCE_LOW = 'IMPORTANCE_LOW',
|
||||
IMPORTANCE_DEFAULT = 'IMPORTANCE_DEFAULT',
|
||||
IMPORTANCE_HIGH = 'IMPORTANCE_HIGH',
|
||||
IMPORTANCE_MAX = 'IMPORTANCE_MAX',
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Status codes returned by `getUnusedAppRestrictionsStatus`.
|
||||
*/
|
||||
export enum ELocalNotificationAndroidUnusedAppRestrictionsStatus {
|
||||
/**
|
||||
* The status of Unused App Restrictions could not be retrieved from this app e.g.
|
||||
* if the app's target SDK version <30 or the user is in locked device boot mode.
|
||||
*/
|
||||
ERROR = 0,
|
||||
|
||||
/** There are no available Unused App Restrictions for this app. */
|
||||
FEATURE_NOT_AVAILABLE = 1,
|
||||
|
||||
/**
|
||||
* Any available Unused App Restrictions on the device are disabled for this app.
|
||||
* In other words, this app is exempt from having its permissions automatically removed or being hibernated.
|
||||
*/
|
||||
DISABLED = 2,
|
||||
|
||||
/**
|
||||
* Unused App Restrictions introduced by Android API 30, and since made available on earlier (API 23-29) devices
|
||||
* are enabled for this app: permission auto-reset. Only used on API 29 or earlier devices.
|
||||
*/
|
||||
API_30_BACKPORT = 3,
|
||||
|
||||
/**
|
||||
* Unused App Restrictions introduced by Android API 30 are enabled for this app: permission auto-reset.
|
||||
* Only used on API 30 or later devices.
|
||||
*/
|
||||
API_30 = 4,
|
||||
|
||||
/**
|
||||
* Unused App Restrictions introduced by Android API 31 are enabled for this app:
|
||||
* permission auto-reset and app hibernation. Only used on API 31 or later devices.
|
||||
*/
|
||||
API_31 = 5,
|
||||
}
|
||||
|
||||
export interface ILocalNotificationEvery {
|
||||
/**
|
||||
* The minute.
|
||||
@@ -244,8 +175,6 @@ export interface ILocalNotificationAction {
|
||||
|
||||
/**
|
||||
* Make this notification show when app in foreground.
|
||||
*
|
||||
* @deprecated Not read by the plugin since it no longer maps to a native option. Use `launch` to bring the app to the foreground on selection instead.
|
||||
*/
|
||||
foreground?: boolean;
|
||||
|
||||
@@ -267,17 +196,10 @@ export interface ILocalNotificationAction {
|
||||
needsAuth?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* The resource path of the action icon. Not supported anymore for normal notifications since Android 7,
|
||||
* it will only be used on Android Wear.
|
||||
* The resource path of the action icon
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Placeholder text for the input field of an action of type 'input'.
|
||||
*/
|
||||
emptyText?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* An array of pre-defined choices for users input
|
||||
@@ -305,14 +227,11 @@ export interface ILocalNotificationAction {
|
||||
export interface ILocalNotificationProgressBar {
|
||||
/**
|
||||
* Is the progress bar enabled?
|
||||
*
|
||||
* @deprecated Not supported anymore. Setting `androidProgressBar` to an object enables it, `null`/omitting it disables it.
|
||||
*/
|
||||
enabled?: boolean;
|
||||
|
||||
/**
|
||||
* The current value
|
||||
* Default: 0
|
||||
*/
|
||||
value?: number;
|
||||
|
||||
@@ -325,7 +244,6 @@ export interface ILocalNotificationProgressBar {
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Show an indeterminate progress bar
|
||||
* Default: false
|
||||
*/
|
||||
indeterminate?: boolean;
|
||||
|
||||
@@ -334,8 +252,6 @@ export interface ILocalNotificationProgressBar {
|
||||
* Gets or sets an optional string to be displayed instead of the
|
||||
* default percentage string. If this isn't provided, something
|
||||
* like "70%" will be displayed.
|
||||
*
|
||||
* @deprecated Windows is no longer a supported platform of this plugin.
|
||||
*/
|
||||
description?: string;
|
||||
|
||||
@@ -345,137 +261,38 @@ export interface ILocalNotificationProgressBar {
|
||||
* on the left.
|
||||
* This string should reflect the status of the operation,
|
||||
* like "Downloading..." or "Installing..."
|
||||
*
|
||||
* @deprecated Windows is no longer a supported platform of this plugin.
|
||||
*/
|
||||
status?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* A single message of the `androidMessages` property, used to summarize/group notifications.
|
||||
*
|
||||
* @see https://github.com/katzer/cordova-plugin-local-notifications#summarizing
|
||||
*/
|
||||
export interface ILocalNotificationAndroidMessage {
|
||||
/**
|
||||
* The message text.
|
||||
* Default: null
|
||||
*/
|
||||
message?: string;
|
||||
|
||||
/**
|
||||
* Timestamp in milliseconds, e.g. by Date.getTime().
|
||||
* Default: System.currentTimeMillis()
|
||||
*/
|
||||
date?: number;
|
||||
|
||||
/**
|
||||
* The name of the person who sent the message.
|
||||
* Default: null
|
||||
*/
|
||||
person?: string;
|
||||
|
||||
/**
|
||||
* The icon of the person, drawn as a circle icon.
|
||||
* Default: null
|
||||
*/
|
||||
personIcon?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Options for `createChannel`.
|
||||
*
|
||||
* @see https://github.com/katzer/cordova-plugin-local-notifications#createchannel
|
||||
*/
|
||||
export interface ILocalNotificationChannel {
|
||||
/**
|
||||
* The id of the channel. Use Snake Case (lowercase, words separated by underscores).
|
||||
*/
|
||||
androidChannelId: string;
|
||||
|
||||
/**
|
||||
* The name of the channel.
|
||||
* Default: "Default channel"
|
||||
*/
|
||||
androidChannelName?: string;
|
||||
|
||||
/**
|
||||
* The description of the channel.
|
||||
*/
|
||||
androidChannelDescription?: string;
|
||||
|
||||
/**
|
||||
* The importance of the channel.
|
||||
* Default: IMPORTANCE_DEFAULT
|
||||
*/
|
||||
androidChannelImportance?: ELocalNotificationAndroidChannelImportance;
|
||||
|
||||
/**
|
||||
* Whether notifications posted to this channel should display notification lights.
|
||||
* Default: false
|
||||
*/
|
||||
androidChannelEnableLights?: boolean;
|
||||
|
||||
/**
|
||||
* Whether notifications posted to this channel should vibrate.
|
||||
* Default: false
|
||||
*/
|
||||
androidChannelEnableVibration?: boolean;
|
||||
|
||||
/**
|
||||
* The sound to play for notifications posted to this channel.
|
||||
*/
|
||||
sound?: string;
|
||||
|
||||
/**
|
||||
* The audio usage of the channel's sound.
|
||||
* Default: 5 (USAGE_NOTIFICATION)
|
||||
*/
|
||||
androidChannelSoundUsage?: number;
|
||||
}
|
||||
|
||||
export interface ILocalNotification {
|
||||
/**
|
||||
* A unique identifier required to clear, cancel, update or retrieve the local notification in the future
|
||||
* Default: 1
|
||||
* Default: 0
|
||||
*/
|
||||
id?: number;
|
||||
|
||||
/**
|
||||
* First row of the notification
|
||||
* Default: Empty string, the app name will be used if empty
|
||||
* Default: Empty string (iOS) or the app name (Android)
|
||||
*/
|
||||
title?: string;
|
||||
|
||||
/**
|
||||
* Second row of the notification
|
||||
* Default: Empty string
|
||||
*
|
||||
* @deprecated Passing an array is deprecated since upstream 1.1.0. Use `androidMessages` instead.
|
||||
*/
|
||||
text?: string | string[];
|
||||
|
||||
/**
|
||||
* 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)
|
||||
*
|
||||
* @deprecated Renamed to `badgeNumber` in upstream 1.1.0.
|
||||
*/
|
||||
badge?: number;
|
||||
|
||||
/**
|
||||
* Overwrites `badge`.
|
||||
* Sets the badge for the application. The behaviour differs between platforms:
|
||||
* Android: increments the badge by the specified number. Default: 1
|
||||
* iOS: sets the badge directly. -1 leaves it unchanged, 0 clears it. Default: -1
|
||||
*/
|
||||
badgeNumber?: number;
|
||||
|
||||
/**
|
||||
* Uri of the file containing the sound to play when an alert is displayed
|
||||
* Default: 'default'
|
||||
* Default: res://platform_default
|
||||
*/
|
||||
sound?: string;
|
||||
|
||||
@@ -489,72 +306,29 @@ export interface ILocalNotification {
|
||||
* ANDROID ONLY
|
||||
* Uri of the icon that is shown in the ticker and notification
|
||||
* Default: res://icon
|
||||
*
|
||||
* @deprecated Renamed to `androidLargeIcon` in upstream 1.1.0.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Add a large icon to the notification content view.
|
||||
* Default: null
|
||||
*/
|
||||
androidLargeIcon?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Can be `square` or `circle`.
|
||||
* Default: 'square'
|
||||
*/
|
||||
androidLargeIconType?: 'square' | 'circle';
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @deprecated Renamed to `androidSmallIcon` in upstream 1.1.0.
|
||||
*/
|
||||
smallIcon?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set the small icon resource, which will be used to represent the notification in the status bar.
|
||||
* Default: res://ic_popup_reminder
|
||||
*/
|
||||
androidSmallIcon?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* RGB value for the background color of the smallIcon.
|
||||
* Default: Androids COLOR_DEFAULT, which will vary based on Android version.
|
||||
*
|
||||
* @deprecated Renamed to `androidColor` in upstream 1.1.0.
|
||||
*/
|
||||
color?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* The notification background color for the small icon, as a hex string like `#FF0000`.
|
||||
* Default: null
|
||||
*/
|
||||
androidColor?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Use the default notification vibrate.
|
||||
*
|
||||
* @deprecated Renamed to `androidChannelEnableVibration` in upstream 1.1.1.
|
||||
*/
|
||||
vibrate?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Enables the vibration of a notification channel.
|
||||
* Default: false
|
||||
*/
|
||||
androidChannelEnableVibration?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Define the blinking of the LED on the device.
|
||||
@@ -565,41 +339,15 @@ export interface ILocalNotification {
|
||||
* If set to an array, the value of the key 0 will be used as the color,
|
||||
* the value of the key 1 will be used as the 'on' timing, the value of
|
||||
* the key 2 will be used as the 'off' timing
|
||||
* Only supported on Android 7, replaced by `androidChannelEnableLights` on newer versions.
|
||||
*/
|
||||
led?: { color: string; on: number; off: number } | any[] | boolean | string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Whether notifications posted to a channel should display notification lights.
|
||||
* Default: false
|
||||
*/
|
||||
androidChannelEnableLights?: boolean;
|
||||
|
||||
/**
|
||||
* Notification priority.
|
||||
* Integers between -2 and 2, whereas -2 is minimum and 2 is maximum priority
|
||||
* Default: 0 (PRIORITY_DEFAULT)
|
||||
*
|
||||
* @deprecated Use `androidChannelImportance`, `androidAlarmType` and `androidAllowWhileIdle` instead since upstream 1.1.0.
|
||||
*/
|
||||
priority?: number;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If the alarm should be scheduled on a specific time or in relevance to the time the device was booted,
|
||||
* and if the alarm should wake up the device cpu (not the screen).
|
||||
* Default: RTC_WAKEUP
|
||||
*/
|
||||
androidAlarmType?: ELocalNotificationAndroidAlarmType;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Alarm will be allowed to execute even when the system is in low-power idle (a.k.a. doze) modes.
|
||||
* Default: false
|
||||
*/
|
||||
androidAllowWhileIdle?: boolean;
|
||||
|
||||
/**
|
||||
* Is a silent notification
|
||||
*/
|
||||
@@ -614,34 +362,15 @@ export interface ILocalNotification {
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Wakeup the device. (default is true)
|
||||
*
|
||||
* @deprecated Renamed to `androidWakeUpScreen` in upstream 1.1.0.
|
||||
*/
|
||||
wakeup?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If the screen should go on, when a notification arrives.
|
||||
* Default: true
|
||||
*/
|
||||
androidWakeUpScreen?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Specifies a duration in milliseconds after which this notification should be canceled, if it is not already canceled.
|
||||
*
|
||||
* @deprecated Renamed to `androidTimeoutAfter` in upstream 1.1.0.
|
||||
*/
|
||||
timeoutAfter?: number | false;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Specifies a duration in milliseconds after which this notification should be canceled, if it is not already canceled.
|
||||
* `0` means no automatic cancellation.
|
||||
* Default: 0
|
||||
*/
|
||||
androidTimeoutAfter?: number | false;
|
||||
|
||||
/**
|
||||
* Actions id or actions
|
||||
*/
|
||||
@@ -665,107 +394,39 @@ export interface ILocalNotification {
|
||||
* 'clock': Show the when date in the content view
|
||||
* 'chronometer': Show a stopwatch
|
||||
*
|
||||
* @deprecated Since upstream 1.1.0. Use `androidShowWhen: boolean` for `clock: boolean` and `androidUsesChronometer: true` for `clock: 'chronometer'`.
|
||||
*/
|
||||
clock?: boolean | string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If the Notification should show the when date.
|
||||
* Default: true
|
||||
*/
|
||||
androidShowWhen?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Show the Notification#when field as a stopwatch, instead of a timestamp.
|
||||
* Default: false
|
||||
*/
|
||||
androidUsesChronometer?: boolean;
|
||||
|
||||
/**
|
||||
* Shows a progress bar
|
||||
* Setting a boolean is a shortcut for {enabled: true/false} respectively
|
||||
*
|
||||
* @deprecated Renamed to `androidProgressBar` in upstream 1.1.0.
|
||||
*/
|
||||
progressBar?: ILocalNotificationProgressBar | boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Shows a progress bar. See https://github.com/katzer/cordova-plugin-local-notifications#progress
|
||||
* Default: null
|
||||
*/
|
||||
androidProgressBar?: ILocalNotificationProgressBar;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If multiple notifications have the same group your app can present
|
||||
* them as a single group.
|
||||
*
|
||||
* @deprecated Renamed to `androidGroup` in upstream 1.1.0.
|
||||
*/
|
||||
group?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set this notification to be part of a group of notifications sharing the same key.
|
||||
* Default: null
|
||||
*/
|
||||
androidGroup?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If set to 'true' this notification could use 'summary' to summarize
|
||||
* the contents of the whole group
|
||||
*
|
||||
* @deprecated Renamed to `androidGroupSummary` in upstream 1.1.0.
|
||||
*/
|
||||
groupSummary?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set this notification to be the group summary for a group of notifications. Requires `androidGroup` also being set.
|
||||
* Default: false
|
||||
*/
|
||||
androidGroupSummary?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Summary of the whole notification group. Should be used in conjuntion
|
||||
* with 'groupSummary' set to true
|
||||
*
|
||||
* @deprecated Renamed to `androidSummary` in upstream 1.1.0.
|
||||
*/
|
||||
summary?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Used as summary text for the InboxStyle, BigPictureStyle or BigTextStyle notification, depending on which is used.
|
||||
* Default: null
|
||||
*/
|
||||
androidSummary?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Array of messages to summarize notifications, uses NotificationCompat.MessagingStyle.
|
||||
* Default: null
|
||||
*/
|
||||
androidMessages?: ILocalNotificationAndroidMessage[];
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Additional text added to the title for displaying the number of messages, when using MessagingStyle.
|
||||
* Use `%n%` in the string for specifying the location of the number.
|
||||
* Default: '%n%'
|
||||
*/
|
||||
androidTitleCount?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Sets the number of items this notification represents.
|
||||
*
|
||||
* @deprecated Removed upstream in 1.1.0 and no longer part of the plugin's options.
|
||||
*/
|
||||
number?: number;
|
||||
|
||||
@@ -774,137 +435,46 @@ export interface ILocalNotification {
|
||||
* Set whether this is an "ongoing" notification.
|
||||
* Ongoing notifications cannot be dismissed by the user,
|
||||
* so your application or service must take care of canceling them.
|
||||
*
|
||||
* @deprecated Renamed to `androidOngoing` in upstream 1.1.0.
|
||||
*/
|
||||
sticky?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set whether this is an ongoing notification. Ongoing notifications cannot be dismissed by the user on locked devices.
|
||||
* Default: false
|
||||
*/
|
||||
androidOngoing?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set this flag if you would only like the sound, vibrate and ticker to be played if the notification is not already showing.
|
||||
* Default: false
|
||||
*/
|
||||
androidOnlyAlertOnce?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Make this notification automatically dismissed when the user touches it.
|
||||
*
|
||||
* @deprecated Renamed to `androidAutoCancel` in upstream 1.1.0.
|
||||
*/
|
||||
autoClear?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Make this notification automatically dismissed when the user touches it.
|
||||
* Default: true
|
||||
*/
|
||||
androidAutoCancel?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If set to true the notification will be show in its entirety on all lockscreens.
|
||||
* If set to false it will not be revealed on a secure lockscreen.
|
||||
*
|
||||
* @deprecated Renamed to `androidLockscreen` in upstream 1.1.0.
|
||||
*/
|
||||
lockscreen?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* If the entire notification should be shown on all lockscreens and while screen sharing.
|
||||
* Default: true
|
||||
*/
|
||||
androidLockscreen?: boolean;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set the default notification options that will be used.
|
||||
* The value should be one or more of the following fields combined with
|
||||
* bitwise-or: DEFAULT_SOUND, DEFAULT_VIBRATE, DEFAULT_LIGHTS.
|
||||
*
|
||||
* @deprecated Renamed to `androidDefaults` in upstream 1.1.0.
|
||||
*/
|
||||
defaults?: number;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Android 7 only. Sets the default notification options that will be used only on Android 7.
|
||||
* Default: 0
|
||||
*/
|
||||
androidDefaults?: number;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Specifies the channel the notification should be delivered on.
|
||||
*
|
||||
* @deprecated Renamed to `androidChannelId` in upstream 1.1.0.
|
||||
*/
|
||||
channel?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Specifies the channel id to be posted on. Use Snake Case (lowercase, words separated by underscores).
|
||||
* Default: 'default_channel'
|
||||
*/
|
||||
androidChannelId?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Sets the `channelName` for the notification to be posted on.
|
||||
* Default: 'Default channel'
|
||||
*/
|
||||
androidChannelName?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Sets the `description` of a notification channel.
|
||||
* Default: null
|
||||
*/
|
||||
androidChannelDescription?: string;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Sets the importance of a notification channel.
|
||||
* Default: IMPORTANCE_DEFAULT
|
||||
*/
|
||||
androidChannelImportance?: ELocalNotificationAndroidChannelImportance;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Sets the audio usage of a notification channel's sound.
|
||||
* Default: 5 (USAGE_NOTIFICATION)
|
||||
*/
|
||||
androidChannelSoundUsage?: number;
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Set the token for the media session
|
||||
*
|
||||
* @deprecated Removed upstream in 1.1.0. This option and MediaStyle are no longer supported.
|
||||
*/
|
||||
mediaSession?: string;
|
||||
|
||||
/**
|
||||
* Make this notification show when app in foreground.
|
||||
*
|
||||
* @deprecated Renamed to `iOSForeground` in upstream 1.1.0.
|
||||
*/
|
||||
foreground?: boolean;
|
||||
|
||||
/**
|
||||
* IOS ONLY
|
||||
* Displays notification in foreground, when app is active.
|
||||
* Default: true
|
||||
*/
|
||||
iOSForeground?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -960,7 +530,7 @@ export interface ILocalNotification {
|
||||
plugin: 'cordova-plugin-local-notification',
|
||||
pluginRef: 'cordova.plugins.notification.local',
|
||||
repo: 'https://github.com/katzer/cordova-plugin-local-notifications',
|
||||
platforms: ['Android', 'iOS'],
|
||||
platforms: ['Android', 'iOS', 'Windows'],
|
||||
})
|
||||
@Injectable()
|
||||
export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
@@ -984,19 +554,6 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Checks if the user has enabled the "Alarms & Reminders" setting, required for exact alarms.
|
||||
* On Android 11 and older this always resolves true, on Android 12 it's granted by default,
|
||||
* on Android 13 and newer it has to be explicitly enabled by the user.
|
||||
*
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
@Cordova()
|
||||
canScheduleExactAlarms(): Promise<boolean> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedules a single or multiple notifications
|
||||
*
|
||||
@@ -1108,10 +665,9 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
* Get the type (triggered, scheduled) for the notification.
|
||||
*
|
||||
* @param {number} id The ID of the notification.
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
@Cordova()
|
||||
getType(id: number): Promise<string> {
|
||||
getType(id: number): Promise<boolean> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1167,24 +723,24 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all scheduled notification objects.
|
||||
* Get a scheduled notification object
|
||||
*
|
||||
* @param notificationId {any} Optional. No longer used upstream, kept only for backward compatibility.
|
||||
* @returns {Promise<ILocalNotification[]>}
|
||||
* @param notificationId {any} The id of the notification to get
|
||||
* @returns {Promise<ILocalNotification>}
|
||||
*/
|
||||
@Cordova()
|
||||
getScheduled(notificationId?: any): Promise<ILocalNotification[]> {
|
||||
getScheduled(notificationId: any): Promise<ILocalNotification> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all triggered notification objects.
|
||||
* Get a triggered notification object
|
||||
*
|
||||
* @param notificationId {any} Optional. No longer used upstream, kept only for backward compatibility.
|
||||
* @returns {Promise<ILocalNotification[]>}
|
||||
* @param notificationId The id of the notification to get
|
||||
* @returns {Promise<ILocalNotification>}
|
||||
*/
|
||||
@Cordova()
|
||||
getTriggered(notificationId?: any): Promise<ILocalNotification[]> {
|
||||
getTriggered(notificationId: any): Promise<ILocalNotification> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1247,40 +803,12 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Creates a notification channel, if it doesn't already exist. A channel can't be changed after creation.
|
||||
*
|
||||
* @param options {ILocalNotificationChannel} The channel to create
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
createChannel(options: ILocalNotificationChannel): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Deletes a notification channel by id. If you create a new channel with the same id, the deleted
|
||||
* channel will be un-deleted with all of the same settings it had before it was deleted.
|
||||
*
|
||||
* @param channelId {string} The id of the channel to delete
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
deleteChannel(channelId: string): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all scheduled notification objects
|
||||
*
|
||||
* @returns {Promise<Array<ILocalNotification>>}
|
||||
* @deprecated Duplicate of `getScheduled()`, kept for backward compatibility. Use `getScheduled()` instead.
|
||||
*/
|
||||
@Cordova({
|
||||
methodName: 'getScheduled',
|
||||
})
|
||||
@Cordova()
|
||||
getAllScheduled(): Promise<ILocalNotification[]> {
|
||||
return;
|
||||
}
|
||||
@@ -1289,78 +817,16 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
* Get all triggered notification objects
|
||||
*
|
||||
* @returns {Promise<Array<ILocalNotification>>}
|
||||
* @deprecated Duplicate of `getTriggered()`, kept for backward compatibility. Use `getTriggered()` instead.
|
||||
*/
|
||||
@Cordova({
|
||||
methodName: 'getTriggered',
|
||||
})
|
||||
@Cordova()
|
||||
getAllTriggered(): Promise<ILocalNotification[]> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the notification settings of the app. On Android 8+ it opens the app's notification settings,
|
||||
* on older Android versions it opens the app details. On iOS it's not possible to open the notification
|
||||
* settings directly, so it opens the app settings instead.
|
||||
*
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
openNotificationSettings(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Since Android 12 (SDK 31). Opens the "Alarms & Reminders" setting, where the user can manually
|
||||
* enable exact alarms. Requires the SCHEDULE_EXACT_ALARM permission to be declared in the AndroidManifest.xml.
|
||||
*
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
openAlarmSettings(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* IOS ONLY
|
||||
* Clears the badge of the app icon.
|
||||
*
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
iOSClearBadge(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Returns the status of the unused app restrictions (app hibernation), introduced in Android 11
|
||||
* and backported to Android 6 through the Google Play Store.
|
||||
*
|
||||
* @returns {Promise<ELocalNotificationAndroidUnusedAppRestrictionsStatus>}
|
||||
*/
|
||||
@Cordova()
|
||||
getUnusedAppRestrictionsStatus(): Promise<ELocalNotificationAndroidUnusedAppRestrictionsStatus> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ANDROID ONLY
|
||||
* Redirects the user to manage their unused app restriction settings. The returned promise resolves once
|
||||
* the user returns to the app; use `getUnusedAppRestrictionsStatus` to check the resulting status.
|
||||
*
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
openManageUnusedAppRestrictions(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a callback for a specific event
|
||||
*
|
||||
* @param eventName {string} The name of the event. Available events: add, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions
|
||||
* @param eventName {string} The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions
|
||||
* @returns {Observable}
|
||||
*/
|
||||
@Cordova({
|
||||
@@ -1375,7 +841,7 @@ export class LocalNotifications extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* Not an official interface, however its possible to manually fire events.
|
||||
*
|
||||
* @param eventName The name of the event. Available events: add, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions
|
||||
* @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions
|
||||
* @param args Optional arguments
|
||||
*/
|
||||
@Cordova({
|
||||
|
||||
Reference in New Issue
Block a user