How to integrate Pushwoosh SDK into your Flutter project

Supports iOS, Android


iOS Simulator can neither subscribe to nor receive push notifications. Android Emulator works fine though.

Plugin source Sample Plugin API Docs Geozones Plugin API Docs Message Inbox Plugin API Docs


1. Create an app on Firebase Cloud Messaging Console. You may use this guide for reference (section Manually add Firebase).

2. Get iOS push certificates by following the iOS Platform Configuration guide.

3. Configure the App in Pushwoosh Control Panel. Please follow Android configuration guide for Andriod and iOS Platform Configuration guide for iOS.

Enable push notifications in your project

First, you need to add the pushwoosh package to your project:

1. Add a dependency to your pubspec.yaml file:

pushwoosh: ^1.8.0

2. Install the package from the command line:

$ flutter packages get

3. Import the package in your dart code

import 'package:pushwoosh/pushwoosh.dart';

Second, place the google-services.json file into android/app folder in your project directory.


You should've gotten the google-services.json file while creating the app in Firebase console. If you haven't, please consult this thread (section Get a config file for your Android app).

Third, initialize the plugin:

Pushwoosh.initialize({"app_id": "YOUR_APP_ID", "sender_id": "FCM_SENDER_ID"});

To register for push notifications, call the following method:


To process various events, use the corresponding listeners as follows. Push receipt:

Pushwoosh.getInstance.onPushReceived.listen((event) {

Push open:

Pushwoosh.getInstance.onPushAccepted.listen((event) {

Deep Link open:

Pushwoosh.getInstance.onDeepLinkOpened.listen((link) {

All done!

Plugin API

To find more details on using the plugin, please see Plugin API Docs.

Using ProGuard

Note that the flutter build apk command obfuscates your code by default.

Thus, you may get this exception:

java.lang.IllegalStateException: Could not find class for name: com.pushwoosh.plugin.PushwooshNotificationServiceExtension

There are two solutions in this case:

  1. Use the flutter build apk --no-shrink command to compile your code without obfuscation.

  2. Or you can manually enable ProGuard and add the necessary rules.

To enable ProGuard for your project, add the following strings to your build.gradle file:

buildTypes {
release {
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug

Then, add the following rules to the android/app/proguard-rules.pro

#Pushwoosh Flutter
-keep class com.pushwoosh.plugin.PushwooshPlugin { *; }
-keep class com.pushwoosh.plugin.PushwooshNotificationServiceExtension { *; }