- Improve documentation
SCHEDULE_EXACT_ALARM
is not pre-configured anymore by this plugin to have more flexibility. If you want exact alarms, see Android inexact and exact alarms- You can declare
USE_EXACT_ALARM
to set your app as a calendar or alarm clock app. See Exact alarms: Define your app as a Calender or Alarm Clock app - Renamed property
vibrate
to androidChannelEnableVibration - Image resources: Support
res://
,www
andshared://
for attachments and attachments.personIcon
- Since iOS 14: Show a notification in the notification center when the app is in foreground, like on Android. Happens also if iOSForeground is
false
. - Renamed internal plugin method
check
tohasPermission
to make it consistent withcordova.plugins.notification.local.hasPermission
- Improve documentation
- Documentation of properties
- Handling Android channels:
- New Methods: createChannel and deleteChannel
- The default channel is configurable
- Changed default channel id from
default-channel-id
todefault_channel
- Bugfix: Make cancel/cancelAll/clear/clearAll work again. This was broken since Version 1.0.0 because of the change "Use app name as a tag for the notify call PR #1781". For e.g. notifications were still in the statusbar, when clearing a notification.
- Bugfix:
java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached
, when canceling notifications and schedule new notifications- When canceling a notification, the saved data for the notification was removed from the app and also a posted notification from the statusbar, but the alarm itself, which would create the notification, not. This was due to a wrongly created intent for clearing the scheduled alarms.
- Bugfix: Reschedule notifications, when app is updated
- Android clears all pending alarms, when an app is updated, this was not properly handled.
- Bugfix: Remove wrongly used intent-filter
LOCKED_BOOT_COMPLETED
- The intent-filter
LOCKED_BOOT_COMPLETED
is executed, when the device was booted, but not yet unlocked by the user (e.g. the device is looked by a pin). To use this feature, the device encrypted storage has to be used, which is accessible bycontext.createDeviceProtectedStorageContext()
. This has first to be implemented and was not implemented.
- The intent-filter
- React on
SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED
when app is closed and not only in the background - Added onlyAlertOnce option
- Removed option
mediaSession
and the corresponding MediaStyle. This was not functional and also needed the extra Android libraryandroid:media
.
- Added resource uri shared://, to set at runtime created resources for e.g. a sound, androidLargeIcon, etc.
- Added resource path www to access www-files
- Removed resource uris
http
,https
. You can use for this the shared dirctory and ashared:
uri. - Removed resource uri
file:///
. file uris should not be used in Android. - Removed resource uri
content:
. You can instead use a shared:// uri.
- General code clenaup
- Removed Plugin dependency
cordova-plugin-badge
andShortcutBadger
. These were only used for Android. Android can handle the badging itself and does not need a 3rd party library. You can configure the behaviour by the badgeNumber property. - Use
FLAG_IMMUTABLE
on every Android version- Before it was set since Android 12, now since Android 7, to make the code consistent between all Android versions.
- Bugfix: Catch any exceptions when attempting to get option for a notification
- Removed subfolder
notification
and correct package declarationde.appplant.cordova.plugin.notification
tode.appplant.cordova.plugin.localnotification
- Added
androidx.core:core
package version1.12.0
for usingNotificationManagerCompat
- The version is cofigurable by
ANDROIDX_CORE_VERSION
. - Added
kotlin-bom
to fix duplicate classes errors.
- The version is cofigurable by
- Removed Android Support Library leftovers
com.android.support:support-v4
fromplugin.xml
- This was overlooked, when switched to Android X.
- Removed
android:media
Library: This was used for MediaSytle, which was removed. - Gradle: Removed deprecated repository
jcenter
. The appeareance ofjcenter
as a repository, produced the gradle warningDeprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
- Always set the receiver class for alarms to
TriggerReceiver.class
, so it's easier to cancel alarms.
- Plugin compatibility for upcoming
cordova-ios
version8.0.0
package.json
: Correct incorrectcordova-ios
dependency- Version
10.0.0
was referenced, but the maximum available version currently is7.1.1
- Correct version also for old plugin version
0.9.0-beta.3
- Version
- New method iOSClearBadge for clearing the badge on iOS.
- Added resource path www to access www-files
Some properties were changed. See Changes since version 1.1.0
- Renamed plugin action
request
torequestPermission
This Release contains mainly changes and fixes for the Android platform.
- Make Plugin compatible with Android 12-14
- Support Android X
- Minimum supported Android version is 7.0 (SDK 24). The target SDK is increased to 34 (Android 14).
- Remove obsolete Windows platform
- Fix crash with target Android 12 (SDK 31) which occured because of a pendingIntent change and not using
PendingIntent.FLAG_IMMUTABLE
- Fix click notifications in Android 12
- Declare
SCHEDULE_EXACT_ALARM
permission, which is necessary for scheduling exact alarms since Android 12 (API 31). It is only pre-granted on Android 12. On Android 13 and newer, the user must grant the permission in the "Alarms & Reminders"-setting, if you still want exact alarms. If the permission is not granted, notifications will be scheduled inexact, which is still ok for the normal case. - Request
POST_NOTIFICATIONS
permission in Android 13 (API 33) - New methods for exact alarms:
- Changes for MessagingStyle:
- Support sender image by new option
personIcon
- Initialize the sender as empty String instead of "Me" (PR #1781)
- Reuse existing messages when using MessagingStyle (PR #1781). With this fix, users won't have to cache the messages in their Javascript code, the plugin will automatically check if there is an active notification with that ID and append the new messages to the existing ones. This will only be done when using MessagingStyle, which will be used, if the option
text
is filled with anArray
instead of aString
. - Added count of messages in a notification, wenn using Array for
text
. (PR #1781) - Added option
titleCount
to modify the count text of messages in a notification. The placeholder%n%
can be used for inserting the messages count. If nothing is set, the text(%n%)
will be used.
- Support sender image by new option
- Use app name as a tag for the notify call (PR #1781)
- Use correct authority name (PR #1853)
- Replace
compile()
withimplementation()
inlocalnotification.gradle
, because starting on Gradle 7.0 the compile-method is removed and will produce errors, likeCould not find method compile() for arguments...
- Raise minimum Version for Cordova dependencies
- Cordova to 12
- cordova-android to 13
A lot of changes were adopted from moodlemobile. Thanks for the work!
- iOS 10
- Bug fixes
- SyntaxError: missing ) after argument list
- Platform enhancements
- Support for the
Crosswalk Engine
- Support for
cordova-ios@4
and theWKWebView Engine
- Support for
cordova-windows@4
andWindows 10
without using hooks - Enhancements
- New
color
attribute for Android (Thanks to @Eusebius1920) - New
quarter
intervall for iOS & Android smallIcon
is optional (Android)update
checks for permission like schedule- Decreased time-frame for trigger event (iOS)
- Force
every:
to be a string on iOS - Bug fixes
- Fixed #634 option to skip permission check
- Fixed #588 crash when basename & extension can't be extracted (Android)
- Fixed #732 loop between update and trigger (Android)
- Fixed #710 crash due to >500 notifications (Android)
- Fixed #682 crash while resuming app from notification (Android 6)
- Fixed #612 cannot update icon or sound (Android)
- Fixed crashing get(ID) if notification doesn't exist
- Fixed #569 getScheduled returns two items per notification
- Fixed #700 notifications appears on bootup
- Submitted to npm
- Initial support for the
windows
platform - Re-add autoCancel option on Android
- Warn about unknown properties
- Fix crash on iOS 9
- Fixed webView-Problems with cordova-android 4.0
- Fix get* with single id
- Fix issue when passing data in milliseconds
- Update device plugin id
- Several other fixes
- Fix incompatibility with cordova version 3.5-3.0
- Fire
clear
instead ofcancel
event when clicked on repeating notifications - Do not fire
clear
orcancel
event when clicked on persistent notifications
- Support for iOS 8, Android 2 (SDK >= 7) and Android 5
- Windows Phone 8.1 will be added soon
- New interfaces to ask for / register permissions required to schedule local notifications
hasPermission()
andregisterPermission()
- schedule() will register the permission automatically and schedule the notification if granted.
- New interface to update already scheduled|triggered local notifications
update()
- New interfaces to clear the notification center
clear()
andclearAll()
- New interfaces to query for local notifications, their properties, their IDs and their existence depend on their state
isPresent()
,isScheduled()
,isTriggered()
getIds()
,getAllIds()
,getScheduledIds()
,getTriggeredIds()
get()
,getAll()
,getScheduled()
,getTriggered()
- Schedule multiple local notifications at once
schedule( [{...},{...}] )
- Update multiple local notifications at once
update( [{...},{...}] )
- Clear multiple local notifications at once
clear( [1, 2] )
- Cancel multiple local notifications at once
cancel( [1, 2] )
- New URI format to specify sound and image resources
http(s):
for remote resources (Android)file:
for local resources relative to the www folderres:
for native resources- New events
schedule
,update
,clear
,clearall
andcancelall
- Enhanced event informations
- Listener will get called with the local notification object instead of only the ID
- Multiple listener for one event
on(event, callback, scope)
- Unregister event listener
un(event, callback)
- New Android specific properties
led
propertiessound
andimage
accepts remote resources- Callback function and scope for all interface methods
schedule( notification, callback, scope )
- Renamed
add()
toschedule()
autoCancel
property has been removed- Use
ongoing: true
for persistent local notifications on Android - Renamed repeat intervals
second
,minute
,hour
,day
,week
,month
andyear
- Renamed some local notification properties
date
,json
,message
andrepeat
- Scheduling local notifications with the deprecated properties is still possible
- Kitchen Sink sample app
- Wiki