Releases
Notifee API releases
9.1.7 (2024-12-17)
Bug Fixes
- ios: copy iOS NotifeeCore library more carefully during build (68f230f)
9.1.6 (2024-12-17)
Bug Fixes
- android: remove semantic-release test commit (0b4ecdf)
9.1.5 (2024-12-17)
Bug Fixes
- android: semantic-release test commit (cf5c7a9)
9.1.4
- fix(android): fix another new architecture issue via elimination of race condition between headlessJS task and react-native background startup that resulted in null ReactContext (#1176)
9.1.3
- fix(android): preserve new-arch classnames used in backwards-compat logic (#1149 special credit to @mbpictures)
This fixes Notifee when used in react-native 0.76 in new architecture + release mode when used in an android background headlessJS context
9.1.2
This the minimum version that supports upcoming react-native 0.76 by default.
Older notifee versions will only work if you disable disable New Architecture / disable bridgless mode
- fix(android): forward-port getReactContext to new arch bridgeless mode (#1127 Thanks @Eclipses-Saros!)
- fix(jest): add missing createChannels method to official mock definitions (#1123)
- docs(android): clarify foregroundServiceType AndroidManifest example
9.1.0
Notifee no longer uses the GMS libraries and thus should be compatible with open source distribution channels like F-Droid now. Thanks @meypod!
- feat(android): Remove all gms usages and use guava instead (#510)
- test(ci, ios): simplify simulator / app interaction
- test(ci, ios): try more powerful runner, possible de-flake
- test(ci, ios): allow more time for e2e test
9.0.3
- fix(ios): use new icon badge APIs / correctly clear badge
- test(ci): use current path to ccache
- test(ci, ios): increase yarn install timeout to stop flakes
- test(ios): commit current pod lockfile
- style(lint, ios): fix various lint warnings
- style(lint): clean up warnings from
yarn validate:all:js
- test(ci): use iPhone 16 now, 15 does not exist for Xcode 16
- test(ci): use hashFiles with specific paths vs globs
- docs: fix typo "AlarmManger" to "AlarmManager" (#1101)
9.0.2
- fix(android): rn74 compatibility support invalidate alongside deprecated onCatalystInstanceDestroy
9.0.0
BREAKING CHANGES!
Android 14+ requires two changes to avoid crashes or Play Store rejection
-
The USE_FULL_SCREEN_INTENT permission is not longer included by default as most apps do not need it. If you need it you must now manually add the permission to AndroidManifest.xml
-
Foreground Service Types are a strict requirement for Android 14 and require Play Store approval. You must use compileSdk 34 or higher for this release. If you need foreground service types you will need to specify the exact foreground service type permissions in your AndroidManifest.xml and you must replace the service definition in AndroidManifest.xml and you must use the new optional foregroundServiceTypes parameter in the foreground service API call
Thanks to all the contributors that proposed these fixes so that Notifee continues to work well on Android 14 - handling the platform security changes as Google makes new releases is not easy, and they always change the Nofitication API surface API. Notifee would not work without the community contributions.
Note, v8.0.0 was published 2 years ago as an alpha on npmjs.com but is unused. However, the version number was consumed by that alpha publish so we have skipped to v9.
- fix(android)!: Remove USE_FULL_SCREEN_INTENT permission from package manifest for Android 14 compat (#1027)
- feat(android)!: allow adding foreground service types dynamically
- feat(android): add Android 15 FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- fix(types): add cancelAllNotifications optional android tag property (#1087)
- build(android): minimal set of changes for compileSdk 34
- test(lint): check native code formatting in CI
- style(lint): result of auto-formatting
yarn format:all
- style(lint): constrain formatting globs, add formatting check run scripts
- docs(android): note apps must now manually add USE_FULL_SCREEN_INTENT if needed
8.0.0
Unreleased
alpha publish from 2022, never made non-alpha, never in use, but version number consumed
7.9.0
- feat: group support to communication push #1017
- fix(iOS): Allow the original delegate to handle non-Notifee notifications first #985
- fix: Remove EventSubcriptionVendor type usage as it's removed in RN0.73 #1001
- fix(android): fix an issue when using inexact alarms #981
- style(lint): fix lint errors from previous commits #1073 q- test(ci, ios): ios build behaving strangely - tune timeouts
- test(example): minimum changes to get example working
- test(ci): remove log compression pre-artifact upload
- test(ci): use codecov action vs bash uploader
- test(ci, ios): switch to macos-14 / apple silicon, iPhone 14
- test(ci, android): use ubuntu+nested-virt+reactive-circus for emulator tests
- test(ci): forward port from GITHUB_OUTPUT vs set-output
- test(ci): bump actions to current versions
- test(ci): use github built-in concurrency controls
- style(lint): ignore pubspec.lock files when looking for changes
- test(android): two alarm manager tests hanging
- build(deps, ios): Podfile.lock version bumps in test app
- build(deps): yarn includes information about itself in package.json
- docs(CONTRIBUTING): auto tag for gh release, point to repo for changelog
7.8.2
- Fix packaging error / missing
dist/version.js
#934
7.8.1
- [Android]: Fix compatibility with android-gradle-plugin 8 (reat-native 0.73+) #907
- Dev and Test: lots of CI and test updates so all checks are green again and current versions of developer tools work while developing in the repository
7.8.0
- [Android]: Adds the ability to create all types of alarms with Android, affects the
TimestampTriggerAlarmManager
API type and deprecates propertyallowWhileIdle
(Addresses issue #655))). - [iOS]: Fixes an issue where the UI thread was getting blocked when creating a notification with attachments (Fixes #234))).
- [Android/iOS]: BREAKING CHANGE: For Expo, there is no config plugin anymore, please remove the plugin from
app.config.js
(See issue #799 for more info).
7.7.1
- [iOS]: Adds image caching for the avatar for Communication Notifications (PR #742))).
7.6.0
- [Android]: Fixes an issue with interval triggers firing immediately (Fixes #696).
- [Android]: Fixes an issue with progress notification with
indeterminate
set totrue
(Fixes #682). - [Android]: Android flag
Flag_NO_CLEAR
is now supported but can get the same behaviour withongoing
set totrue
(Fixes #674). - [Android/iOS]: Fixes a ts error with latest React Native version 0.71+ (Fixes #708).
- [Android]: Fixes an issue where if
autoCancel
is set tofalse
, for Android actions this was ignored for Android 12 and above (Fixes #697). - [Android]: Remove unused android dependenecy
okhttp3
which was reported to have been causing a problem (Fixes #699).
7.5.0
- [Android]: Updates the Android EventBus dependency to comply with the Google Play Store requirements (Fixes #668).
7.4.0
- [Android]: Fixes an issue when setting a custom launchActivity to ensure the correct activity is launched when a notification is pressed when app is closed (Fixes #646).
- [Android]: Fixes an issue with Android
lights
when parsing colors as strings for trigger notifications (Fixes #618). - [Android]: Fixes an issue with jest mock where some mocks were not returning the correct type (Fixes #636).
- [Android]: Adds a new
TYPE_FG_ALREADY_EXIST
event type for foreground services (PR #634). - [iOS]: Removes a debug console.log statement that was commited to the main branch (PR #617).
7.1.0
- [iOS]: Supports communication notifications on iOS (PR #526).
7.0.4
- [Android]: Fixes an issue when calling requestPermissions for Android 12 or lower (Fixes #555).
7.0.3
- [Android]: Fixes an issue that was introduced in v6.0.0 to support targetSdkVersion 33 (Fixes #547).
7.0.1
- [Android]: Fixes an issue that was introduced in v6.0.0 (Fixes #528).
7.0.0
-
[iOS]: BREAKING CHANGE: Notifee now handles response events (PRESSED, ACTION_PRESSED, DISMISSED) for remote notifications on iOS (PR #236).
- This allows quick actions from remote notifications to be supported without the need of a NSE [Learn More]
onNotificationOpenedApp
andgetInitialNotification
fromRNFB Messaging
will no longer trigger as notifee will handle the event. Should not require any code changes to theseRNFB
event handlers, as events on Android will continue to work as normal
6.0.0
- [Android] BREAKING CHANGE: Added support for requesting permission on Android 13 via
requestPermission
, the minimum compileSdkVersion required has increased to 33. And, to support this feature, the targetSdkVersion must also be increased to 33.
5.7.0
- [iOS]: Adds new
interruptionLevel
property toNotificationIOS
which provides the option to display time-sensitive notifications (Fixes #287).
5.6.0
- [Android]: Adds new
loopSound
andflags
properties toNotificationAndroid
to support custom flags and to loop the sound when a push notification is displayed (Fixes #454).
5.5.0
- [Android]: Fixes a compile issue for monorepos where sometimes
app.notifee:core:+
cannot be found (Fixes #350). - [iOS]: Adds new
list
andbanner
options toIOSForegroundPresentationOptions
on iOS. These new options should be used as a replacement for thealert
option which is now deprecated in notifee; notifee will fallback to using Apple'sUNNotificationPresentationOptionAlert
option for iOS 13 when eitherbanner
orlist
is set to true. There are no breaking changes, but we encourage you to update your project as soon as you can if you set customIOSForegroundPresentationOptions
. To learn more, view the Foreground Notifications documentation (Enhancement #382).
5.4.1
- [Android]: Fixes an issue when creating a one-time trigger notifications with AlarmManager (Fixes #445).
5.2.1
- [Android]: Fixes a build issue introduced in version 5.2.0 (PR #384).
5.2.0
- [Android]: Fixes a compiling issue for some project configurations with error message "Project with path ':app' could not be found in project ':notifee_react-native'" (Fixes #288).
- [Android]: Fixes an issue where the current version of Notifee does not build when using an expo managed app with the expo plugin (Fixes #314).
- [Web]: Basic support for react-native-web - notifications do not work on web yet, but the package is now compatible with web (PR #369)
5.1.0
- [Android]: Introduces new APIs to help manage Android 12 limitations when creating trigger notifications:
canScheduleExactAlarms
openAlarmPermissionSettings
And, the ability to check if your app has permissions to create trigger notifications by calling getNotificationSettings()
.
To learn more, see Triggers documentation for Android.
5.0.3
- [Android]: Fixes an issue when canceling trigger notifications created via AlarmManager to prevent "Maximum limit of concurrent alarms 500 reached for uid" error being thrown (Fixes #349).
5.0.2
- [iOS]: Fixes an issue with
NotificationSettings
returning the wrong property name forauthorizationStatus
on iOS (Fixes #333).
5.0.1
- [Android]: Fixes an issue where quick actions always opens the app on Android 12 (Fixes #315).
- [Android]: Fixes an issue where a quick action with an id of
default
failed to open the app.
5.0.0
- [Android/iOS] BREAKING CHANGE: Added support for checking permissions on Android which introduces a breaking change to
requestPermission
andgetNotificationSettings
APIs.
Both APIs have been updated to return an object of type NotificationSettings
, in replace of NotificationSettingsIOS
.
NotificationSettings
consists of two properties authorizationStatus
and ios
, where ios
is a nested object of type NotificationSettingsIOS
.
To learn more, see Permissions documentation for iOS, and Android.
4.1.0
- [Android]: Add support to set
largeIcon
forAndroidStyle.BIGPICTURE
to null (Fixes #270) - [Android]: Fixes an issue with Android 12 when tapping on a notification (Fixes #250)
- [Android]: Fixes an issue when an action is pressed where the notification drawer would remain open with the notification (Fixes #268)
4.0.1
- [Android]: Fixes an issue with repeating trigger notifications where the next notification was scheduled at the incorrect time, causing the notification to infinitely display (Fixes #252).
4.0.0
- [Android]: BREAKING CHANGE : the minimum compileSdkVersion required has increased to 31, to fix an issue with Android 12 where the app will crash due to a missing Intent immutability flag (Fixes #238). You do not need to alter targetSdkVersion or anything else - but you must increase compileSdkVersion to 31. Please note, JDK11 is strongly recommended when using compile or target sdk 31. Please note, we do not correctly handle the new "exact alarm" Android 12 restrictions so we recommend staying on targetSdkVersion 30 for now.
3.0.3
- [iOS]: Fix iOS API availability guards, and all compile warnings (Fixes #204)
3.0.2
- [Android]: Include support for expo managed projects [Learn More]]
- [Android]: Adds support for Android 12
3.0.1
- [Android]: Fixes an issue where the wrong quick action was triggered when fired in quick succession (Fixes #121)
- [Android]: Fixes an issue where notifications created by FCM were not being removed from the notification tray when cancelled (Fixes #120)
- [iOS]: Compiled module no longer depends on a XCFramework, as part of the migration to fully open source the library. [Learn More]
3.0.0
- [Android]: BREAKING CHANGE - the minimum SDK version has been updated from 16 to 20, providing backwards notification compatibility up to Android 4.4W.
- [Android]: Fixes an issue with
getDisplayedNotifications
where the id returned is not the original notification id. (Fixes #381) - [Android]: Fixes an issue with displaying a notification with
android.tag
(Fixes #382) - [Android]: Introduces support to cancel a notification with a
tag
- Removed licensing validation and related code - Notifee is now free and fully open source. [Learn More]
2.0.0
- [Android]: BREAKING CHANGE - you must add a new maven local repository to your
android/build.gradle
file. (Fixes #151). See step #2 in the installation guide
1.11.0
- [Android]: Fixes an issue where
getInitialNotification
was sometimes throwing an error leading to a crash if activity was null. (Fixes #374)
1.11.0
- [Android]: Fixes an issue where the initial notification wasn't being populated for full-screen actions.
- [iOS]: Introduces a new method signature for
NotifeeExtensionHelper.populateNotificationContent
where therequest
is passed down as well as thebestAttemptContent
. View the Remote Notification Support documentation for more information. - [iOS]: Adds a note in the reference documentation that
getInitialNotification()
for iOS is deprecated in favour ofonForegroundEvent
.
1.10.1
- [Android]: Fixes an issue on Android to prevent
cancelDisplayedNotifications
cancelling trigger notifications. (Fixes #349)
1.10.0
- [Android/iOS]: Introduces the following APIs:
getDisplayedNotifications
getTriggerNotifications
isChannelBlocked
isChannelCreated
cancelAllNotifications(ids)
cancelDisplayedNotifications(ids)
cancelTriggerNotifications(ids)
- BREAKING: Fixes an issue when setting a custom sound on a notification channel (Fixes #341). Sounds now must be specified without the file extension, previously it was optional. If you were using custom sounds on Android>7 prior to this, you will need to create a new notification channel or the reference to your custom sound on the channel will likely not survive app updates. We apologize for the inconvenience
1.9.2
- [Android]: Fixes an issue where an error is thrown when the intent was null in rare cases for foreground service events.
1.9.1
- [Android]: Fixes an issue where an error is thrown when using trigger notifications with AlarmManager on Android 8 & 7
1.9.0
- [Android]: Support Alarm Manager for trigger notifications.
- [iOS]: Xcode 12.4 and above is now supported
1.8.0
- [Android/iOS]: Include support for jest tests by including a
jest-mock.js
file. - [Android]: Add an extra safety check to prevent app from crashing if a
launchActivity
property is set to an invalid activity class.
1.7.0
- [Android/iOS]: Allows title, body, and subtitle to be set to undefined in addition to string values to prevent an empty space on Android.
- [Android/iOS]: Updated validation to only throw an error for platform-specific properties if the app is running the same platform (Feature enhancement #297).
- [iOS]: Xcode 12.5 is required on iOS.
1.5.0
- [Android]: Implemented support for
notifee.hideNotificationDrawer
(Feature enhancement #200).
1.4.0
- [Android]: Added support for
fullScreenAction
onNotificationAndroid
(Feature enhancement #45).
1.3.1
- [Android]: Fixed an issue where sometimes the app would throw an exception when the user changes the notification blocked state for either a channel or the entire application (Fixes #237).
1.3.0
- [Android]: Fixed an issue where sometimes the foreground service failed to stop when calling
resolve
due to an issue with hot reloading. It can be stopped bynotifee.stopForegroundService()
. To learn more, view the Foreground Service documentation.
1.2.1
- [Android]: Fixed an issue with Notifee's build script where sometimes an error would occur that the target variant task already existed.
1.2.0
- [iOS]: Includes a Notification Service Extension Helper to take advantage of Notifee with remote notifications. To learn more, view the Remote Notification Support documentation.
1.1.2
- [iOS]: Enforce v1.10+ of CocoaPods (Fixes #230).
1.1.1
- [Android]: Includes a solution to fix an error due to a potential race condition that occurs when the user changes the notification blocked state for either a channel or the entire application (Fixes #237).
0.15.2
- [Android]: Added additional logs to help with debugging license validation issues.
- [Android/iOS]: Fixed an issue where sometimes the
NotifeeApiModule
would fail to resolvethis.native
due to the context changing.
0.15.1
- [Android]: Fixed an issue where sometimes the
largeIcon
wouldn't show when the app is closed. - [Android/iOS]: Fixed an issue to show a more descriptive warning if the background event handler isn't set via
onBackgroundEvent
.
0.15.0
- [Android]: Implemented additional support to help with background restrictions on Android, includes two new methods
getPowerManagerInfo
andopenPowerManagerSettings
. - [Android]: Fixed an issue with subtitle where the default value was causing two dots on some devices.
- [Android/iOS]: Added support to cancel either a displayed or a trigger notification.
0.14.0
- [Android]: Fixed an issue where
isBatteryOptimizationEnabled
was returning the result as an object instead of a boolean. - [Android]: Fixed an issue where
openBatteryOptimizationSettings
was sometimes throwing an exception for Samsung and Oppo phones on Android versions 6.0. - [iOS]: Fixed an issue when a notification is pressed while the app is in the background on iOS 14, which sometimes would cause the app to crash.
0.13.2
- [Android]: Fixed an issue where trigger notifications created with v0.12.x and below would cause the app to crash when upgrading to v0.13.x.
0.13.1
- [iOS]: Added support to handle remote urls for Attachments.
- [iOS]: Added iOS support for
repeatFrequency
onTimestampTrigger
. See Triggers.
0.13.0
- [Android]: Added support for
repeatFrequency
onTimestampTrigger
to be able to create hourly, daily or weekly trigger notifications. See Triggers. - [Android]: Implemented support to help with background restrictions on Android, includes two methods
isBatteryOptimizationEnabled
andopenBatteryOptimizationSettings
. See Background Restrictions. - [Android]: Fixed an issue when creating a trigger notification, where sometimes the input data would reach the maximum number of bytes allowed.
0.12.3
- [Android]: Fixed an issue where
pressAction
with thedefault
id failed to open the app when the notification was pressed. - [Android]: Fixed an issue with gradle plugin 4.1 and
Build.VERSION_NAME
which prevented the app from building.
0.12.2
- [iOS]: Fixed an issue where the
DELIVERED
foreground event wasn't being sent for trigger notifications. - [iOS]: Fixed an issue with the iOS module that sent events before the JS bundle was ready.
0.12.0
- [Android]:
lightColor
andsound
are now returned when callinggetChannel
orgetChannels
. - BREAKING:
TimeTrigger
has been removed, in favour ofTimestampTrigger
andIntervalTrigger
. - [iOS]: Trigger Notifications are now supported on
iOS
. See Triggers.
0.11.1
- [Android]: Fixed an issue with
cancelNotification
for trigger notifications. - [Android]: Fixed an issue with remote verification on devices less than or equal to 20
- [iOS]: Call original delegate when intercepting notification response on iOS
0.11.0
- [Android]: Add support for Trigger Notifications on Android. See Triggers.
- [Android]: Fixed an issue with
getChannels
andgetChannelGroups
where the methods were throwing an error - [iOS]: Fixed an issue with iOS 14 where sometimes the app would freeze briefly when receiving an push notification
0.10.0
- [Android]: Fixed an issue with sounds for Android versions < 8.0 (API level 26)
- [Android]: Fixed an issue with
notifee.config.json
where sometimes the script could not find the 'app' gradle project automatically.
0.9.0
- [iOS]: Add support for iOS
onBackgroundEvent
. - [iOS]: Pool JS events until RN Bridge is ready.
- [Android]: Allow multiple
onBackgroundEvent
observers when inside a foreground service task.
0.8.0
- [iOS]: Add support for iOS notification attachments. See iOS Attachments.
0.7.1
- [Android]: Fixed an issue where the Headless task key was incorrect for the foreground service task.update
0.7.0
- [Android]: Implemented support for
launchActivityFlags
- allowing you to customise the launch behaviour of your activities.- See
AndroidLaunchActivityFlag
for supported flags.
- See
0.6.1
- [Android]: Fixed an issue with Android proguard rules that may have prevented the library from being used when minified.
0.6.0
- [Android]:
notifee.config.json
now supports specifying options for build flavours & types.- See this comment comment for an example.
- [TypeScript]: Reworked type definitions to fix minor definition issues.
- BREAKING:
Importance
has now been renamed toAndroidImportance
and is no longer supported oniOS
(replaced withforegroundPresentationOptions
). - [iOS]: Implemented support for
ios.foregroundPresentationOptions
to control foreground notification behaviour on iOS- See the iOS appearance guide for more information.
- [Android]: Fixed an issue where creating multiple
channel
orchannelGroups
would fail to create. - [Android]:
requestPermission
now correctly resolves a dummy instance ofIOSNotificationSettings
(previouslynull
on Android) for cross-platform compatibility. - [Android]:
largeIcon
&picture
(from big picture style) now supports React Native asset loading, e.g.largeIcon: require('./image.png')
.