Flutter
How to integrate Pushwoosh SDK into your Flutter project
If you encounter errors when migrating Pushwoosh Flutter Plugin to version 2.1.0 or higher, please refer to the guide on fixing known issues for solutions.
Since version 2.2.14, the package name has changed from 'pushwoosh' to 'pushwoosh_flutter'. Make sure to update your pubspec.yaml and change import lines to
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart'
1. Create an app on Firebase Cloud Messaging Console. You may use this guide for reference (section Manually add Firebase).
3. Configure the App in Pushwoosh Control Panel. Please follow Android configuration guide for Andriod and iOS Platform Configuration guide for iOS.
First, you need to add the Pushwoosh package to your project:
1. Add a dependency to your
pubspec.yaml
file:dependencies:
pushwoosh_flutter: ^2.2.14
2. Install the package from the command line:
$ flutter packages get
3. Import the package in your dart code:
import 'package:pushwoosh_flutter/pushwoosh_flutter.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:
Pushwoosh.getInstance.registerForPushNotifications();
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!
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:
build.gradle
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
proguard-rules.pro
#Pushwoosh Flutter
-keep class com.pushwoosh.plugin.PushwooshPlugin { *; }
-keep class com.pushwoosh.plugin.PushwooshNotificationServiceExtension { *; }
Your feedback helps us create a better experience, so we would love to hear from you if you have any issues during the SDK integration process. If you face any difficulties, please do not hesitate to share your thoughts with us via this form.
Last modified 2mo ago