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:
canScheduleExactAlarms(successCallback, scope)
- Android only. Checks if the user has enabled the "Alarms & Reminders"-setting. If not, the notificiatons will be scheduled inexact, which is still ok and will only be delayed by some minutes.- On Android 12 the permission is granted by default
- On Android 13 and newer, the permission is not granted by default and have to be explicitly enabled by the user.
- On Android 11 and older, this method will always return
true
in thesuccessCallback
.
openAlarmSettings(successCallback, scope)
- Android only. Opens the "Alarms & Reminders"-settings as an Activity when running on Android 12 (SDK 31) or later, where the user can enable exact alarms. On Android older then 12, it will just call thesuccessCallback
, without doing anything. This method will not wait for the user to be returned back to the app. For this, theresume
-event can be used. The callback will just returnOK
, after starting the activity.- If the user grants permission, already inexact scheduled notifications will automatically be rescheduled as exact alarms, but only if the app is still available in background.
- If exact alarms were alreay granted and the user revokes it, the app will be killed and all scheduled notifications will be canceld. The app have to schedule the notifications as inexact alarms again, when the app is opened the next time, see https://developer.android.com/develop/background-work/services/alarms/schedule#using-schedule-exact-permission.
openNotificationSettings(successCallback, scope)
- Opens the notifications settings of the app on Android 8 and newer. This method will not wait for the user to be returned back to the app. For this, theresume
-event can be used.- On Android, the callback will just return "OK", after starting the activity.
- On Android older then 8, it opens the app details.
- On iOS it's not possible to open the notification settings, it will open the app settings.
- 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.
- Added 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