Skip to content

Latest commit

 

History

History
208 lines (183 loc) · 13.2 KB

CHANGELOG.md

File metadata and controls

208 lines (183 loc) · 13.2 KB

ChangeLog

Version 1.1.1-dev

Android

iOS

  • 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 to hasPermission to make it consistent with cordova.plugins.notification.local.hasPermission

Version 1.1.0 (23.12.2024)

  • Improve documentation
  • Documentation of properties

Changes for Android

  • Handling Android channels:
  • Changed default channel id from default-channel-id to default_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 by context.createDeviceProtectedStorageContext(). This has first to be implemented and was not implemented.
  • 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 library android:media.

Changes in resource handling

  • 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 a shared: uri.
  • Removed resource uri file:///. file uris should not be used in Android.
  • Removed resource uri content:. You can instead use a shared:// uri.

Code fixes and cleanup

  • General code clenaup
  • Removed Plugin dependency cordova-plugin-badge and ShortcutBadger. 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 declaration de.appplant.cordova.plugin.notification to de.appplant.cordova.plugin.localnotification
  • Added androidx.core:core package version 1.12.0 for using NotificationManagerCompat
    • The version is cofigurable by ANDROIDX_CORE_VERSION.
    • Added kotlin-bom to fix duplicate classes errors.
  • Removed Android Support Library leftovers com.android.support:support-v4 from plugin.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 of jcenter as a repository, produced the gradle warning Deprecated 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.

Changes for iOS

  • Plugin compatibility for upcoming cordova-ios version 8.0.0
  • package.json: Correct incorrect cordova-ios dependency
    • Version 10.0.0 was referenced, but the maximum available version currently is 7.1.1
    • Correct version also for old plugin version 0.9.0-beta.3
  • New method iOSClearBadge for clearing the badge on iOS.
  • Added resource path www to access www-files

Changed properties

Some properties were changed. See Changes since version 1.1.0

Other changes

  • Renamed plugin action request to requestPermission

Version 1.0.0 (17.08.2024)

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 an Array instead of a String.
    • 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.
  • Use app name as a tag for the notify call (PR #1781)
  • Use correct authority name (PR #1853)
  • Replace compile() with implementation() in localnotification.gradle, because starting on Gradle 7.0 the compile-method is removed and will produce errors, like Could 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!

Version 0.9.0-beta.3 (13.02.2018)

Version 0.9.0-beta.2 (11.01.2018)

Version 0.9.0-beta.1 (11.11.2017)

Version 0.9.0-beta.0 (31.10.2017)

Version 0.8.5 (22.05.2017)

  • iOS 10

Version 0.8.4 (04.01.2016)

  • Bug fixes
  • SyntaxError: missing ) after argument list

Version 0.8.3 (03.01.2016)

  • Platform enhancements
  • Support for the Crosswalk Engine
  • Support for cordova-ios@4 and the WKWebView Engine
  • Support for cordova-windows@4 and Windows 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

Version 0.8.2 (08.11.2015)

  • 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

Version 0.8.1 (08.03.2015)

  • Fix incompatibility with cordova version 3.5-3.0
  • Fire clear instead of cancel event when clicked on repeating notifications
  • Do not fire clear or cancel event when clicked on persistent notifications

Version 0.8.0 (05.03.2015)

  • 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() and registerPermission()
  • 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() and clearAll()
  • 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 folder
  • res: for native resources
  • New events
  • schedule, update, clear, clearall and cancelall
  • 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 properties
  • sound and image accepts remote resources
  • Callback function and scope for all interface methods
  • schedule( notification, callback, scope )
  • Renamed add() to schedule()
  • autoCancel property has been removed
  • Use ongoing: true for persistent local notifications on Android
  • Renamed repeat intervals
  • second, minute, hour, day, week, month and year
  • Renamed some local notification properties
  • date, json, message and repeat
  • Scheduling local notifications with the deprecated properties is still possible
  • Kitchen Sink sample app
  • Wiki