Skip to content

This plugin will allow you to use Notifee with a notification service extension without needing to eject from Expo managed workflow.

License

Notifications You must be signed in to change notification settings

evennit/notifee-expo-plugin

Repository files navigation

🔥👹 Notifee-Expo-Plugin 👹🔥

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!

🧩 Install 🧩

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

🛠️ Config 🛠️

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"
        }
      ]
    ]
  }
}

🔨 Rebuild your app 🔨

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!

Props

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

🤩 STARS 🤩

If this was of any use to you, feel OBLIGATED to give it a 🌟 :))))).

💸 if (feelingGrateful && hasABuckToGive) 💸

You can support me via ko-fi.

Shameless plug because I kinda need money for my startup. 🥺

📜 License 📜

This package is made available under the MIT license.

Happy coding :)

About

This plugin will allow you to use Notifee with a notification service extension without needing to eject from Expo managed workflow.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published