Package selection guidance compiled from public package information, community data, and project usage.
Pusher Beams is the official Flutter plugin for integrating push notifications into Flutter applications. It enables developers to send targeted, personalized notifications to users across Android, iOS, and Web platforms. The plugin simplifies the process of receiving real-time notifications by handling token registration, subscription management, and message delivery through Pusher's scalable infrastructure. With minimal setup, developers can enhance user engagement with timely, relevant alerts. The plugin is maintained by Pusher and integrates seamlessly with their Beams service.
Use cases
Sending targeted push notifications
User engagement through real-time alerts
Cross-platform notification delivery
Personalized messaging based on user interests
Real-time updates in mobile and web apps
Key features
Official Pusher plugin
Supports Android, iOS, and Web
Token management and device registration
Subscription-based notification targeting
Secure and scalable backend integration
Suitable for
Apps requiring real-time notifications
Developers using Pusher Beams service
Cross-platform mobile and web apps
User-centric notification systems
Applications with dynamic content updates
Considerations
Requires Pusher Beams account setup
Needs proper Firebase or APNs configuration
Limited to Pusher's notification infrastructure
Dependent on internet connectivity
May require additional backend logic for custom payloads
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
In order to work with this Flutter plugin you must have a Pusher Beams Account and already got an instanceId within your dashboard, you can Sign Up here.
Android Additional
Firebase Account and a google-services.json (follow this guide). Do not initialize anything, this plugin just requires a google-services.json within your android/app folder.
To install this plugin within you Flutter application, you need to add the package into your pubspec.yaml.
dependencies:pusher_beams:^1.0.1
or with flutter pub
flutter pub add pusher_beams
There are some additional steps for some platforms.
Android
Add this line inside your project-level build.gradle which is located at your android folder
buildscript {
// Your config...
repositories {
// Your repositories...
}
dependencies {
// Your dependencies...// Add this line
classpath 'com.google.gms:google-services:4.2.0'
}
}
Now, on your app-level build.gradle you must include com.google.gms.google-services ( google-services.json must be already included within your app as it's a prerequisite). Just add this line at the end of your app-level build.gradle.
apply plugin: 'com.google.gms.google-services'
Web
Create a file called service-worker.js inside your web folder.
If you already have done the prerequisites, now you can initialize Pusher Beams using the start method as soon as possible (Preferable inside the main function).
This repository is following git flow branching model, so in order to contribute, once you fork this project, you must create a fix/ or feature/ branch, which will be pull requested from you once it's ready.
There's two major tests, our app-facing package test which is run as Integration Test and our platform-interface package test run as Unit Test
Integration Tests
For integration tests, we use the example app provided in packages/pusher_beams/example. In order to run the integration tests you must complete the prerequisites in the example app which is...
You already registered into Pusher Beams platform.
If you already double-check the list above, then you must replace the constant instanceId located on packages/pusher_beams/example/integration_test/pusher_beams_test.dart with a real one from Pusher Beams.
// Code...const instanceId = 'your-instance-id'; // Replace this with a real instanceId// More Code...
So that's all! you can now run the integration test with the following command on the example app path (packages/pusher_beams/example):
As this plugin platform interface is generated by Pigeon and if you modified the file messages.dart from packages/pusher_beams_platform_interface package, in order to generate a new MethodChannel interface you must run the following command on path packages/pusher_beams_platform_interface:
classPusherBeamsApiextendsPusherBeamsPlatform{
// Pigeon Generated Class Code
}
This will require you to change the methods onInterestChanges and setUserId parameter arg_callbackId to type dynamic in order to accomplish PusherBeamsPlatform definition like below:
// Class code...Future<void> onInterestChanges(dynamic arg_callbackId) async {
// onInterestChanges generated function code...
}
Future<void> setUserId(String arg_userId, BeamsAuthProvider arg_provider, dynamic arg_callbackId) async {
// setUserId generated function code...
}
// More class code...
License
Copyright (c) 2015 Pusher Ltd. See LICENSE for details.