Are YOU looking for a plugin that will magically do these things for you without needing to eject your Expo app?:
- Add a notification service extension with the Notifee service (Also useful because of low power mode on iOS disabling notifee onBackgroundEvent)
- Automatically sign your main app and notification service extension targets with the apple dev team id you provided
- Add iOS communication notifications capability to your app
- Enable the iOS background modes of your liking
- Populate your android app's folders with your notification icon
Well... you are at the right place!
Assure you already have @notifee/react-native
installed and then:
# npm
npm install @evennit/notifee-expo-plugin
#or
# yarn
yarn add @evennit/notifee-expo-plugin
Add the plugin to your Expo config's plugin array like so:
app.config.js
{
plugins: [
[
"@evennit/notifee-expo-plugin",
{
iosDeploymentTarget: "13.4", //<-- Must be the same as your main app target's iOS deployment target
apsEnvMode: "development",
},
],
];
}
app.config.json
{
"expo": {
"plugins": [
[
"@evennit/notifee-expo-plugin",
{
"iosDeploymentTarget": "13.4", //<-- Must be the same as your main app target's iOS deployment target
"apsEnvMode": "development"
}
]
]
}
}
After installing and adding the plugin to your project's Expo config plugin array, you need to rebuild your iOS and Android apps:
npx expo prebuild
Now you should be good to go!
Property | Description |
---|---|
apsEnvMode: string (required) |
Sets the APS Environment Entitlement. Determines whether to use the development or production Apple Push Notification service (APNs). Values: "development" or "production" |
iosDeploymentTarget: string (required) |
Sets the deployment target of the notification service extension for iOS. This should match the deployment target of the main app. Ex: "13.4" |
androidIcons?: NotifeeAndroidIcon[] |
Specifies Android icons to be added to the appropriate resource folders for notification purposes. Each icon should be defined with a name, path, and type (large or small). Ex: [{ name: "ic_small_logo", path: "./assets/logo.png", type: "small" }] |
enableCommunicationNotifications?: boolean |
Enables communication notifications, which adds the necessary configurations for communication notifications as mentioned in invertase/notifee#526. |
appleDevTeamId?: string |
Automatically signs the app and the notification service extension targets with the provided Apple developer team ID. |
customNotificationServiceFilePath?: string |
Specifies the path to a custom notification service file, which should already include the necessary configurations for Notifee along with any additional customizations. You can build upon the default NotificationService.m file of this package. Ex: "./assets/notifee/NotificationService.m" . |
backgroundModes?: string[] |
Specifies the background modes to enable for the app. If not provided, the default value will be: ["remote-notification"] . On the other hand, an empty array [] will signal to the plugin to skip the backgroundModes step completly. iOS only.See possible values here: https://developer.apple.com/documentation/bundleresources/information_property_list/uibackgroundmodes |
If this was of any use to you, feel OBLIGATED to give it a 🌟 :))))).
You can support me via ko-fi.
Shameless plug because I kinda need money for my startup. 🥺
This package is made available under the MIT license.
Happy coding :)