cordova-plugin-local-notifications-continued 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/.github/FUNDING.yml +1 -0
  2. package/.github/ISSUE_TEMPLATE/report_issue.yml +126 -0
  3. package/CHANGELOG.md +358 -0
  4. package/LICENSE +202 -0
  5. package/README.md +1531 -0
  6. package/images/android-actions-with-input-clicked.png +0 -0
  7. package/images/android-actions-with-input-not-clicked.png +0 -0
  8. package/images/android-actions.png +0 -0
  9. package/images/android-alarms-and-reminders-in-app-settings.png +0 -0
  10. package/images/android-alarms-and-reminders-setting.png +0 -0
  11. package/images/android-app-hibernation-notification.png +0 -0
  12. package/images/android-app-hibernation-settings-android-12.png +0 -0
  13. package/images/android-app-hibernation-settings-android-13-14.png +0 -0
  14. package/images/android-app-hibernation-settings-android-15.png +0 -0
  15. package/images/android-attachments-image-folded.png +0 -0
  16. package/images/android-attachments-image-unfolded.png +0 -0
  17. package/images/android-chat.png +0 -0
  18. package/images/android-icon.svg +19 -0
  19. package/images/android-inbox.png +0 -0
  20. package/images/android-notification-example.png +0 -0
  21. package/images/android-progress.png +0 -0
  22. package/images/android-request-permission.png +0 -0
  23. package/images/android-stack.png +0 -0
  24. package/images/apple-icon.svg +1 -0
  25. package/images/cordova-app-notified-logo.png +0 -0
  26. package/images/ios-actions-with-input.png +0 -0
  27. package/images/ios-actions.png +0 -0
  28. package/images/ios-attachments-image-folded.png +0 -0
  29. package/images/ios-attachments-image-unfolded.png +0 -0
  30. package/images/ios-notification.png +0 -0
  31. package/images/ios-request-permission.png +0 -0
  32. package/images/logo.png +0 -0
  33. package/package.json +53 -0
  34. package/plugin.xml +266 -0
  35. package/src/android/ClickActivity.java +72 -0
  36. package/src/android/LocalNotification.java +779 -0
  37. package/src/android/Manager.java +327 -0
  38. package/src/android/Notification.java +844 -0
  39. package/src/android/Options.java +956 -0
  40. package/src/android/OptionsTrigger.java +104 -0
  41. package/src/android/action/Action.java +214 -0
  42. package/src/android/action/ActionGroup.java +135 -0
  43. package/src/android/build/localnotification.gradle +29 -0
  44. package/src/android/receiver/ClearReceiver.java +61 -0
  45. package/src/android/receiver/RestoreReceiver.java +70 -0
  46. package/src/android/receiver/TriggerReceiver.java +70 -0
  47. package/src/android/trigger/TriggerHandler.java +195 -0
  48. package/src/android/trigger/TriggerHandlerAt.java +63 -0
  49. package/src/android/trigger/TriggerHandlerEvery.java +257 -0
  50. package/src/android/trigger/TriggerHandlerIn.java +69 -0
  51. package/src/android/util/AssetUtil.java +385 -0
  52. package/src/android/util/CallbackContextUtil.java +88 -0
  53. package/src/android/util/PluginFileProvider.java +34 -0
  54. package/src/android/xml/shared_files_provider_paths.xml +38 -0
  55. package/src/ios/APPLocalNotification.h +56 -0
  56. package/src/ios/APPLocalNotification.m +650 -0
  57. package/src/ios/APPNotificationCategory.h +28 -0
  58. package/src/ios/APPNotificationCategory.m +107 -0
  59. package/src/ios/APPNotificationContent.h +32 -0
  60. package/src/ios/APPNotificationContent.m +122 -0
  61. package/src/ios/APPNotificationOptions.h +42 -0
  62. package/src/ios/APPNotificationOptions.m +689 -0
  63. package/src/ios/UNNotificationRequest+APPLocalNotification.h +32 -0
  64. package/src/ios/UNNotificationRequest+APPLocalNotification.m +100 -0
  65. package/src/ios/UNUserNotificationCenter+APPLocalNotification.h +60 -0
  66. package/src/ios/UNUserNotificationCenter+APPLocalNotification.m +344 -0
  67. package/www/local-notification.js +1104 -0
@@ -0,0 +1 @@
1
+ github: GitToTheHub
@@ -0,0 +1,126 @@
1
+ name: 🐞 Bug report
2
+ description: Create a report to help us improve
3
+ title: "[BUG] "
4
+ labels: ["bug"]
5
+
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Thank you for reporting a bug! Please fill out the form below with as much detail as possible.
11
+
12
+ - type: textarea
13
+ id: bug_description
14
+ attributes:
15
+ label: Describe the bug
16
+ description: A clear and concise description of what the bug is.
17
+ placeholder: Describe the bug...
18
+ validations:
19
+ required: true
20
+
21
+ - type: input
22
+ id: plugin_version
23
+ attributes:
24
+ label: Plugin version
25
+ placeholder: e.g. 1.2.4
26
+ validations:
27
+ required: true
28
+
29
+ - type: input
30
+ id: platform
31
+ attributes:
32
+ label: Platform
33
+ placeholder: Android, iOS
34
+ validations:
35
+ required: true
36
+
37
+ - type: input
38
+ id: os_version
39
+ attributes:
40
+ label: OS version
41
+ placeholder: e.g. Android 17.0, iOS 26.5
42
+ validations:
43
+ required: true
44
+
45
+ - type: input
46
+ id: device_manufacturer_model
47
+ attributes:
48
+ label: Device manufacturer / model
49
+ placeholder: e.g. Google Pixel 11 Pro
50
+ validations:
51
+ required: true
52
+
53
+ - type: input
54
+ id: cordova_version
55
+ attributes:
56
+ label: Cordova version
57
+ placeholder: e.g. 13.0.0
58
+ validations:
59
+ required: true
60
+
61
+ - type: input
62
+ id: cordova_platform_version
63
+ attributes:
64
+ label: Cordova platform version
65
+ placeholder: e.g. cordova-android 15.0.0
66
+ validations:
67
+ required: true
68
+
69
+ - type: textarea
70
+ id: plugin_config
71
+ attributes:
72
+ label: Plugin config
73
+ placeholder: Add your plugin configuration here...
74
+ validations:
75
+ required: true
76
+
77
+ - type: textarea
78
+ id: expected_behavior
79
+ attributes:
80
+ label: Expected behavior
81
+ description: A clear and concise description of what you expected to happen.
82
+ placeholder: Describe expected behavior...
83
+ validations:
84
+ required: true
85
+
86
+ - type: textarea
87
+ id: actual_behavior
88
+ attributes:
89
+ label: Actual behavior
90
+ description: A clear and concise description of what actually happens.
91
+ placeholder: Describe actual behavior...
92
+ validations:
93
+ required: true
94
+
95
+ - type: textarea
96
+ id: steps_to_reproduce
97
+ attributes:
98
+ label: Steps to Reproduce
99
+ description: Include code to reproduce the issue if relevant.
100
+ placeholder: |
101
+ 1. Go to '...'
102
+ 2. Click on '...'
103
+ 3. Scroll down to '...'
104
+ 4. See error
105
+ validations:
106
+ required: true
107
+
108
+ - type: textarea
109
+ id: context
110
+ attributes:
111
+ label: Context
112
+ description: What were you trying to do?
113
+ placeholder: Provide context here...
114
+ validations:
115
+ required: true
116
+
117
+ - type: textarea
118
+ id: debug_logs
119
+ attributes:
120
+ label: Debug logs
121
+ description: Include iOS / Android logs.
122
+ placeholder: |
123
+ * ios XCode logs
124
+ * Android: $ adb logcat
125
+ validations:
126
+ required: false
package/CHANGELOG.md ADDED
@@ -0,0 +1,358 @@
1
+ # ChangeLog
2
+
3
+ ## Version 1.2.4
4
+
5
+ ### Android
6
+
7
+ - fix(android): Check extras in `ClickActivity`, `ClearReceiver` and `TriggerReceiver` ([#2096](https://github.com/katzer/cordova-plugin-local-notifications/pull/2096))
8
+
9
+ ### Others
10
+
11
+ - chore: bump dev version to 1.2.4-dev ([#2095](https://github.com/katzer/cordova-plugin-local-notifications/pull/2095))
12
+ - doc(readme): improve badges and other minor changes ([#2097](https://github.com/katzer/cordova-plugin-local-notifications/pull/2097))
13
+ - fix(readme): fix badges using this package (#2097) ([#2098](https://github.com/katzer/cordova-plugin-local-notifications/pull/2098))
14
+ - chore(npm-publish.yml): update workflow ([#2101](https://github.com/katzer/cordova-plugin-local-notifications/pull/2101))
15
+ - chore: Rename to `cordova-plugin-local-notifications-continued`, setup fork
16
+
17
+ ## Version 1.2.3 (22.11.2025)
18
+
19
+ ### Android
20
+
21
+ - Bugfix: Make Actions persistent
22
+ - Actions were not stored persistent. If the app was killed and a notification appeared, the actions were not shown anymore.
23
+ - Fixes [Issue #2090](https://github.com/katzer/cordova-plugin-local-notifications/issues/2090).
24
+ - Auto dismiss notifications with input action: A clear does not work on notifications with input fields. Google recommends to update the notificiation after an input was made without adding actions. The input does this and removes the notification after a short delay. Fixes [Issue #2080](https://github.com/katzer/cordova-plugin-local-notifications/issues/2080).
25
+ - Bugfix: Use `Object.assign` instead of spread in object literals in `local-notification.js`, to make this plugin work with an Android 7 emulator, where the WebView can't be updated
26
+ - Some code refactoring
27
+
28
+ ### Common
29
+
30
+ - Readme: Improve documenation of actions and events
31
+
32
+ ## Version 1.2.2 (12.10.2025)
33
+
34
+ ### iOS
35
+ - Ignore deprecation warning about using `UNNotificationPresentationOptionAlert`
36
+ - XCode could give a deprecation warning about using `UNNotificationPresentationOptionAlert` which is deprecated since iOS 14. The code is already written in such a way that it can only be used on iOS 13 and older versions. So ignore the deprecation warning.
37
+
38
+ ### Common
39
+
40
+ - Add plugin method `getDefaults` back
41
+ - The `getDefaults` method was accidentally removed in version `1.1.0`
42
+ - Thanks to @randnetdd who reported this issue
43
+ - Fixes [#2088](https://github.com/katzer/cordova-plugin-local-notifications/issues/2088)
44
+
45
+ ## Version 1.2.1 (14.08.2025)
46
+
47
+ ### Android
48
+ - Bugfix: Prevent `NullPointerException` for trigger and clear
49
+ - It could happen, that a `NullPointerException` occurred, when a notification was triggered or a user cleared a notification, because the notification data was not found any longer in the `SharedPreferences`
50
+ - Bugfix: Handle crash when updating from plugin version `0.9-beta.3` and notifications were already scheduled with the old plugin version.
51
+ - This was due to not handling correctly the `-beta` in the version string `0.9-beta.3` when trying to convert the string to an int. Now the pre-release identifiers `-dev` and `-beta` will be removed, before the version string will be converted to an int.
52
+ - Fixes [#2087](https://github.com/katzer/cordova-plugin-local-notifications/issues/2087)
53
+ - Update `meta.version` of scheduled notifications from older plugin versions to the current plugin version. So if notifications were scheduled by version `1.2.0`, it will be updated to `1.2.1`, when the app is updated.
54
+
55
+ ## Version 1.2.0 (02.07.2025)
56
+
57
+ ### Common
58
+ - Bugfix: Don't filter out notifications where `trigger.at` is not set: Notifications were filtered out when something other than `trigger.at` was set like `trigger.in`, or `trigger.every`
59
+
60
+ ## Version 1.1.9 (12.06.2025)
61
+
62
+ ### Android
63
+ - Bugfix: Subsequent notifications were ignored, when posting them without `trigger.at`: If no `trigger.at` was set, it was set to the current time, but due shallow copying the default properties, the `trigger`-property of the defaults was changed also to that time and all subsequent notifications were getting the time which resulted in being ignored.
64
+ - Fixes https://github.com/katzer/cordova-plugin-local-notifications/issues/2082
65
+
66
+ ## Version 1.1.8 (25.05.2025)
67
+
68
+ ### Android
69
+
70
+ - Bugfix: Handle passed `trigger.at` dates: If `trigger.at` lays more then 5 seconds in the past, ignore it, otherwise keep sure, it will be posted on iOS and Android by setting the trigger time 5 seconds in the future.
71
+ - Bugfix: Open app when notification clicked. The app was not opened anymore, when a notification was clicked
72
+ - Bugfix: Already posted notifications could not be updated
73
+ - Bugfix: Already posted notifications will be shown again, when the app updates or the device reboots.
74
+ - Bugfix: Setting no trigger date fired endless notifications
75
+ - `trigger.at` will always be set, when no trigger is set. The current time will be used as `trigger.at` then.
76
+ - Bugfix: `trigger.unit` and `trigger.every` (String) could fail in different user locales. The value of those two properties was upper cased by [String.toUpperCase()](https://developer.android.com/reference/java/lang/String#toUpperCase()) and turned after into an `Enum`. The method `String.toUpperCase()` is locale aware and will use the current user locale to upper case the string. In Turkish, for e.g., the value `minute` would become upper cased to `MİNUTE` where the I has a dot above it and would not recognized as an Enum. Now enums will not be used anymore and the values are taken as they come from JavaScript and are expected to be lower cased like `minute`, `hour` etc.
77
+ - Thanks [TheNotorius0](https://github.com/TheNotorius0) for sharing his experiences in issue [2060](https://github.com/katzer/cordova-plugin-local-notifications/issues/2060) as a [comment](https://github.com/katzer/cordova-plugin-local-notifications/issues/2060#issuecomment-2751895663) and also [pahenator](https://github.com/pahenator) for initially posting the issue.
78
+ - Thanks [iamAdamGoodman](https://github.com/iamAdamGoodman) noting that `trigger.at` was not functioning after adding these changes in issue [2070](https://github.com/katzer/cordova-plugin-local-notifications/issues/2070)
79
+ - Throw exception if the `trigger` property is set wrong
80
+ - Bugfix: Use `cordova-android` default Kotlin support mechanism. The plugin has bypassed `cordova-android` default Kotlin support mechanism by defining `kotlin-bom` in `localnotification.gradle`. To enable Cordova-Android's Kotlin support, the preference flag `GradlePluginKotlinEnabled` is set to true in `plugin.xml` and `kotlin-bom` was removed. Fixes https://github.com/katzer/cordova-plugin-local-notifications/issues/2076
81
+ - Set default notification id to 1 instead of 0
82
+ - Code refactoring
83
+ - Renamed `DateTrigger.java` to `TriggerHandler.java`
84
+ - Added `OptionsTrigger` which is a helper to read the trigger properties
85
+ - Split `IntervalTrigger` in `TriggerHandlerAt`, `TriggerHandlerIn` and `TriggerHandlerEvery`, to better refelect the trigger options
86
+ - Rename `MatchTrigger` to `TriggerHandlerEvery`
87
+ - Remove `BuilderCreator` and move code to `Notification`
88
+ - Move notification show code from `TriggerReceiver` to `Notification`
89
+
90
+ ## Version 1.1.7 (22.03.2025)
91
+ - Fix for npm: The dev version 1.1.6-dev was accidentally published to npm and there were also problems with version 1.1.6. Correct this to 1.1.7.
92
+
93
+ ## Version 1.1.6 (22.03.2025)
94
+ - Fix for npm: The dev version 1.1.6-dev was accidentally published to npm. This will correct this as published as 1.1.6.
95
+
96
+ ## Version 1.1.5 (22.03.2025)
97
+
98
+ ### Android
99
+ - Bugfix: Don't crash when getting none existent notification. Calling `cancel` could crash the app, if a notification does not exist for an id.
100
+ - Fixes [Issue 2064](https://github.com/katzer/cordova-plugin-local-notifications/issues/2064)
101
+
102
+ ## Version 1.1.4 (21.03.2025)
103
+
104
+ ### Android
105
+ - Restore notifications correctly from old plugin versions
106
+ - Old properties were only corrected in JavaScript, but not on Java. If an app was updated with the new plugin version and had scheduled notifications before, the notifications could be triggered with no sound and the default `smallIcon` would always be used.
107
+ - Fixes [Issue 2059](https://github.com/katzer/cordova-plugin-local-notifications/issues/2059)
108
+ - Refactor trigger handling
109
+ - Trigger notifications where `trigger.at` is in the past. Before those notifications were ignored.
110
+ - `DateTrigger`: Set occurrence initial to 0 (not 1)
111
+ - Don't schedule all occurrences at once when `trigger.count` is set. Schedule one after the other, like it's done when `trigger.count` is not set
112
+ - Repeating notification: Don't cancel previously posted notification, when scheduling next notification, fixes [Issue 2059](https://github.com/katzer/cordova-plugin-local-notifications/issues/2059)
113
+ - Restore a trigger date exactly like it was before the restoration
114
+ - Fallback for false `unit` value when using `trigger: {in: xxx, unit: 'xxx'}`
115
+ - Unit `minute` will be used if `unit` is set wrong.
116
+ - Fixes [Issue 2060](https://github.com/katzer/cordova-plugin-local-notifications/issues/2060)
117
+ - Bugfix: Calculation of next `trigger.every`: The second occurrence of `trigger.every` was calculated wrong, because the base date was not set to the last trigger date of the last occurrence but instead to the current time. Now the trigger date will be saved in the `SharedPreferences` of Android and restored when the next occurrence is scheduled and calculated.
118
+ - Fixes [Issue 2059](https://github.com/katzer/cordova-plugin-local-notifications/issues/2059)
119
+ - Bugfix: Only fire `add` event, if a notification was scheduled successfully. Before it could also be fired, when an error occurred and the notification was not scheduled.
120
+ - Fire event `clear` or `cancel` always when a notification is cleared or canceled. Before it could be possible, that these events were not fired though notifications got cleared or canceled.
121
+ - Code changes:
122
+ - Refactor `MatchTrigger` used for `trigger: every { minute: xx, hour: xx, ...}`
123
+ - Remove `Request.java` and use `DateTrigger` directly in a `Notification`. Intialise the appropriate `DateTrigger` when a `Notification` is created.
124
+ - Rename `Builder` to `BuilderCreator` and set the builder directly in a `Notification`. Don't create a Notification from the Builder.
125
+
126
+ ### Common
127
+ - Improve documentation: [trigger property](README.md#triggers)
128
+
129
+ ## Version 1.1.3 (15.02.2025)
130
+
131
+ ### Android
132
+ - fix(crash): `ArrayIndexOutOfBoundsException` can occur, if the user dismisses a permission request without clicking a button
133
+ - Reported by #UzverNumber47. Thanks :)
134
+
135
+ ## Version 1.1.2 (08.02.2025)
136
+
137
+ ### Android
138
+ - Bugfix for input actions: Make PendingIntent for actions mutable. Fixes a crash when using input actions
139
+ - New methods for handling unused app restrictions settings
140
+ - `getUnusedAppRestrictionsStatus`: Gets the status of the unused app restrictions status
141
+ - `openManageUnusedAppRestrictions`: Opens the settings for controlling the unused app restrictions status
142
+
143
+ ### iOS
144
+ - Fix warnigs when using cordova-ios 8.0.0
145
+ - Remove wrong named params from code documentation.
146
+
147
+ ### Common
148
+ - Improve documentation
149
+
150
+ ## Version 1.1.1 (24.01.2025)
151
+
152
+ ### Android
153
+ - `SCHEDULE_EXACT_ALARM` is not pre-configured anymore by this plugin to have more flexibility. If you want exact alarms, see [Schedule exact alarms](README.md#android-schedule-exact-alarms).
154
+ - 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](README.md#exact-alarms-define-your-app-as-a-calender-or-alarm-clock-app)
155
+ - Renamed property `vibrate` to [androidChannelEnableVibration](README.md#property-androidchannelenablevibration)
156
+ - Image resources: Support `res://`, `www` and `shared://` for [attachments](README.md#property-attachments) and [attachments.personIcon](README.md#property-personicon)
157
+
158
+ ### iOS
159
+ - Since iOS 14: Show a notification in the notification center when the app is in foreground, like on Android. Happens also if [iOSForeground](README.md#property-iosforeground) is `false`.
160
+
161
+ ### Common
162
+ - Improved documentation
163
+ - Renamed internal plugin method `check` to `hasPermission` to make it consistent with `cordova.plugins.notification.local.hasPermission`
164
+
165
+ ## Version 1.1.0 (23.12.2024)
166
+
167
+ - Improve documentation
168
+ - Documentation of properties
169
+
170
+ ### Changes for Android
171
+ - Handling [Android channels](README.md#android-notification-channels):
172
+ - New Methods: [createChannel](README.md#createchannel) and [deleteChannel](README.md#deletechannel)
173
+ - The [default channel](README.md#default-channel) is configurable
174
+ - Changed default channel id from `default-channel-id` to `default_channel`
175
+ - 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](https://github.com/katzer/cordova-plugin-local-notifications/pull/1781)". For e.g. notifications were still in the statusbar, when clearing a notification.
176
+ - Bugfix: `java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached`, when canceling notifications and schedule new notifications
177
+ - 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.
178
+ - Bugfix: Reschedule notifications, when app is updated
179
+ - Android clears all pending alarms, when an app is updated, this was not properly handled.
180
+ - Bugfix: Remove wrongly used intent-filter `LOCKED_BOOT_COMPLETED`
181
+ - 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.
182
+ - React on `SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED` when app is closed and not only in the background
183
+ - Added [onlyAlertOnce](https://developer.android.com/reference/android/app/Notification.Builder#setOnlyAlertOnce(boolean)) option
184
+ - Removed option `mediaSession` and the corresponding MediaStyle. This was not functional and also needed the extra Android library `android:media`.
185
+
186
+ #### Changes in resource handling
187
+ - Added resource uri [shared://](README.md#resource-pattern-shared), to set at runtime created resources for e.g. a [sound](README.md#property-sound), [androidLargeIcon](README.md#property-androidlargeicon), etc.
188
+ - Added resource path [www](README.md#resource-pattern-www) to access www-files
189
+ - Removed resource uris `http`, `https`. You can use for this the [shared](README.md#resource-pattern-shared) dirctory and a `shared:` uri.
190
+ - Removed resource uri `file:///`. file uris should not be used in Android.
191
+ - Removed resource uri `content:`. You can instead use a [shared://](README.md#resource-pattern-shared) uri.
192
+
193
+ #### Code fixes and cleanup
194
+ - General code clenaup
195
+ - 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](README.md#property-badgenumber) property.
196
+ - Use `FLAG_IMMUTABLE` on every Android version
197
+ - Before it was set since Android 12, now since Android 7, to make the code consistent between all Android versions.
198
+ - Bugfix: Catch any exceptions when attempting to get option for a notification
199
+ - Removed subfolder `notification` and correct package declaration `de.appplant.cordova.plugin.notification` to `de.appplant.cordova.plugin.localnotification`
200
+ - Added `androidx.core:core` package version `1.12.0` for using `NotificationManagerCompat`
201
+ - The version is cofigurable by `ANDROIDX_CORE_VERSION`.
202
+ - Added `kotlin-bom` to fix duplicate classes errors.
203
+ - Removed Android Support Library leftovers `com.android.support:support-v4` from `plugin.xml`
204
+ - This was overlooked, when switched to Android X.
205
+ - Removed `android:media` Library: This was used for MediaSytle, which was removed.
206
+ - 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.`
207
+ - Always set the receiver class for alarms to `TriggerReceiver.class`, so it's easier to cancel alarms.
208
+
209
+ ### Changes for iOS
210
+ - Plugin compatibility for upcoming `cordova-ios` version `8.0.0`
211
+ - `package.json`: Correct incorrect `cordova-ios` dependency
212
+ - Version `10.0.0` was referenced, but the maximum available version currently is `7.1.1`
213
+ - Correct version also for old plugin version `0.9.0-beta.3`
214
+ - New method [iOSClearBadge](README.md#iosclearbadge) for clearing the badge on iOS.
215
+ - Added resource path [www](README.md#resource-pattern-www) to access www-files
216
+
217
+ ### Changed properties
218
+ Some properties were changed. See [Changes since version `1.1.0`](README.md#changes-since-version-110)
219
+
220
+ ### Other changes
221
+ - Renamed plugin action `request` to `requestPermission`
222
+
223
+ ## Version 1.0.0 (17.08.2024)
224
+ This Release contains mainly changes and fixes for the Android platform.
225
+
226
+ - Make Plugin compatible with Android 12-14
227
+ - Support Android X
228
+ - Minimum supported Android version is 7.0 (SDK 24). The target SDK is increased to 34 (Android 14).
229
+ - Remove obsolete Windows platform
230
+ - Fix crash with target Android 12 (SDK 31) which occured because of a pendingIntent change and not using `PendingIntent.FLAG_IMMUTABLE`
231
+ - Fix click notifications in Android 12
232
+ - 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.
233
+ - Request `POST_NOTIFICATIONS` permission in Android 13 (API 33)
234
+ - New methods for exact alarms:
235
+ - [canScheduleExactAlarms(successCallback, scope)](README.md#canscheduleexactalarms)
236
+ - [openAlarmSettings(successCallback, scope)](README.md#openalarmsettings)
237
+ - [openNotificationSettings(successCallback, scope)](README.md#opennotificationsettings)
238
+ - Changes for MessagingStyle:
239
+ - Support sender image by new option `personIcon`
240
+ - Initialize the sender as empty String instead of "Me" ([PR #1781](https://github.com/katzer/cordova-plugin-local-notifications/pull/1781))
241
+ - Reuse existing messages when using MessagingStyle ([PR #1781](https://github.com/katzer/cordova-plugin-local-notifications/pull/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`.
242
+ - Added count of messages in a notification, wenn using Array for `text`. ([PR #1781](https://github.com/katzer/cordova-plugin-local-notifications/pull/1781))
243
+ - 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.
244
+ - Use app name as a tag for the notify call ([PR #1781](https://github.com/katzer/cordova-plugin-local-notifications/pull/1781))
245
+ - Use correct authority name ([PR #1853](https://github.com/katzer/cordova-plugin-local-notifications/pull/1853))
246
+ - 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...`
247
+ - Raise minimum Version for Cordova dependencies
248
+ - Cordova to 12
249
+ - cordova-android to 13
250
+
251
+ A lot of changes were adopted from [moodlemobile](https://github.com/moodlemobile/cordova-plugin-local-notification). Thanks for the work!
252
+
253
+ ## Version 0.9.0-beta.3 (13.02.2018)
254
+
255
+ ## Version 0.9.0-beta.2 (11.01.2018)
256
+
257
+ ## Version 0.9.0-beta.1 (11.11.2017)
258
+
259
+ ## Version 0.9.0-beta.0 (31.10.2017)
260
+
261
+ ## Version 0.8.5 (22.05.2017)
262
+ - iOS 10
263
+
264
+ ## Version 0.8.4 (04.01.2016)
265
+ - Bug fixes
266
+ - SyntaxError: missing ) after argument list
267
+
268
+ ## Version 0.8.3 (03.01.2016)
269
+ - Platform enhancements
270
+ - Support for the `Crosswalk Engine`
271
+ - Support for `cordova-ios@4` and the `WKWebView Engine`
272
+ - Support for `cordova-windows@4` and `Windows 10` without using hooks
273
+ - Enhancements
274
+ - New `color` attribute for Android (Thanks to @Eusebius1920)
275
+ - New `quarter` intervall for iOS & Android
276
+ - `smallIcon` is optional (Android)
277
+ - `update` checks for permission like _schedule_
278
+ - Decreased time-frame for trigger event (iOS)
279
+ - Force `every:` to be a string on iOS
280
+ - Bug fixes
281
+ - Fixed #634 option to skip permission check
282
+ - Fixed #588 crash when basename & extension can't be extracted (Android)
283
+ - Fixed #732 loop between update and trigger (Android)
284
+ - Fixed #710 crash due to >500 notifications (Android)
285
+ - Fixed #682 crash while resuming app from notification (Android 6)
286
+ - Fixed #612 cannot update icon or sound (Android)
287
+ - Fixed crashing get(ID) if notification doesn't exist
288
+ - Fixed #569 getScheduled returns two items per notification
289
+ - Fixed #700 notifications appears on bootup
290
+
291
+ ## Version 0.8.2 (08.11.2015)
292
+ - Submitted to npm
293
+ - Initial support for the `windows` platform
294
+ - Re-add autoCancel option on Android
295
+ - Warn about unknown properties
296
+ - Fix crash on iOS 9
297
+ - Fixed webView-Problems with cordova-android 4.0
298
+ - Fix get* with single id
299
+ - Fix issue when passing data in milliseconds
300
+ - Update device plugin id
301
+ - Several other fixes
302
+
303
+ ## Version 0.8.1 (08.03.2015)
304
+
305
+ - Fix incompatibility with cordova version 3.5-3.0
306
+ - Fire `clear` instead of `cancel` event when clicked on repeating notifications
307
+ - Do not fire `clear` or `cancel` event when clicked on persistent notifications
308
+
309
+ ## Version 0.8.0 (05.03.2015)
310
+
311
+ - Support for iOS 8, Android 2 (SDK >= 7) and Android 5
312
+ - Windows Phone 8.1 will be added soon
313
+ - New interfaces to ask for / register permissions required to schedule local notifications
314
+ - `hasPermission()` and `registerPermission()`
315
+ - _schedule()_ will register the permission automatically and schedule the notification if granted.
316
+ - New interface to update already scheduled|triggered local notifications
317
+ - `update()`
318
+ - New interfaces to clear the notification center
319
+ - `clear()` and `clearAll()`
320
+ - New interfaces to query for local notifications, their properties, their IDs and their existence depend on their state
321
+ - `isPresent()`, `isScheduled()`, `isTriggered()`
322
+ - `getIds()`, `getAllIds()`, `getScheduledIds()`, `getTriggeredIds()`
323
+ - `get()`, `getAll()`, `getScheduled()`, `getTriggered()`
324
+ - Schedule multiple local notifications at once
325
+ - `schedule( [{...},{...}] )`
326
+ - Update multiple local notifications at once
327
+ - `update( [{...},{...}] )`
328
+ - Clear multiple local notifications at once
329
+ - `clear( [1, 2] )`
330
+ - Cancel multiple local notifications at once
331
+ - `cancel( [1, 2] )`
332
+ - New URI format to specify sound and image resources
333
+ - `http(s):` for remote resources _(Android)_
334
+ - `file:` for local resources relative to the _www_ folder
335
+ - `res:` for native resources
336
+ - New events
337
+ - `schedule`, `update`, `clear`, `clearall` and `cancelall`
338
+ - Enhanced event informations
339
+ - Listener will get called with the local notification object instead of only the ID
340
+ - Multiple listener for one event
341
+ - `on(event, callback, scope)`
342
+ - Unregister event listener
343
+ - `un(event, callback)`
344
+ - New Android specific properties
345
+ - `led` properties
346
+ - `sound` and `image` accepts remote resources
347
+ - Callback function and scope for all interface methods
348
+ - `schedule( notification, callback, scope )`
349
+ - Renamed `add()` to `schedule()`
350
+ - `autoCancel` property has been removed
351
+ - Use `ongoing: true` for persistent local notifications on Android
352
+ - Renamed repeat intervals
353
+ - `second`, `minute`, `hour`, `day`, `week`, `month` and `year`
354
+ - Renamed some local notification properties
355
+ - `date`, `json`, `message` and `repeat`
356
+ - Scheduling local notifications with the deprecated properties is still possible
357
+ - [Kitchen Sink sample app](https://github.com/katzer/cordova-plugin-local-notifications/tree/example)
358
+ - [Wiki](https://github.com/katzer/cordova-plugin-local-notifications/wiki)