pushwoosh_flutter library
Pushwoosh Flutter Plugin
Cross-platform push notifications, In-App messaging, and more for Flutter applications.
Installation
Add to your pubspec.yaml:
dependencies:
pushwoosh_flutter: ^2.3.15
Optional plugins
dependencies:
pushwoosh_geozones: ^2.3.15 # Location-based push notifications
pushwoosh_inbox: ^2.3.15 # Message Inbox UI
iOS Setup
cd ios && pod install
Android Setup
- Configure Firebase project in Firebase Console
- Place
google-services.jsonintoandroid/app/folder
Quick Start
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
void main() {
runApp(MyApp());
Pushwoosh.initialize({
"app_id": "YOUR_PUSHWOOSH_APP_ID"
});
Pushwoosh.getInstance.onPushReceived.listen((event) {
print("Push received: ${event.pushwooshMessage.payload}");
});
Pushwoosh.getInstance.onPushAccepted.listen((event) {
print("Push opened: ${event.pushwooshMessage.payload}");
});
Pushwoosh.getInstance.registerForPushNotifications();
}
Common Use Cases
Set User Tags
await Pushwoosh.getInstance.setTags({
"username": "john_doe",
"age": 25,
"interests": ["sports", "tech"]
});
Map tags = await Pushwoosh.getInstance.getTags();
User Identification
Pushwoosh.getInstance.setUserId("user_12345");
Post Events for In-App Messages
await Pushwoosh.getInstance.postEvent("purchase_complete", {
"productName": "Premium Plan",
"amount": "9.99"
});
Deep Link Handling
Pushwoosh.getInstance.onDeepLinkOpened.listen((String deepLink) {
print("Deep link opened: $deepLink");
});
Multi-channel Communication
await Pushwoosh.getInstance.setEmail("user@example.com");
await Pushwoosh.getInstance.setEmails(["user@example.com", "work@example.com"]);
Pushwoosh.getInstance.registerSmsNumber("+1234567890");
Pushwoosh.getInstance.registerWhatsappNumber("+1234567890");
Badge Management
Pushwoosh.getInstance.setApplicationIconBadgeNumber(5);
int badge = await Pushwoosh.getInstance.getApplicationIconBadgeNumber;
Pushwoosh.getInstance.addToApplicationIconBadgeNumber(1);
Live Activities (iOS)
await Pushwoosh.getInstance.defaultSetup();
await Pushwoosh.getInstance.defaultStart(
"delivery_123",
{"driverName": "John"},
{"status": "On the way"}
);
await Pushwoosh.getInstance.stopLiveActivity();
JavaScript Interface for In-App Messages
await Pushwoosh.getInstance.addJavascriptInterface('flutter', {
'onButtonTap': (Map<String, dynamic> args) {
print("Button tapped: $args");
return "OK";
},
'getUserData': (Map<String, dynamic> args) {
return {"name": "John", "premium": true};
}
});
Configuration Parameters
| Parameter | Description |
|---|---|
app_id |
Your Pushwoosh Application ID (required) |
Push Events
| Stream | Type | Description |
|---|---|---|
onPushReceived |
PushEvent |
Fires when push notification is received |
onPushAccepted |
PushEvent |
Fires when push notification is opened |
onDeepLinkOpened |
String |
Fires when a deep link URL is opened |
Links
Classes
- PushEvent
- Pushwoosh
- Pushwoosh class offers access to the singleton-instance responsible for registering the device with the Pushwoosh, receiving and processing push notifications
- PushwooshMessage
Typedefs
-
MessageHandler
= Future Function(Map<
String, dynamic> message)