App push
activeThis how-to makes an app reachable on Engage's push channel and able to display what it receives. The shape is the same on every platform:
- Initialize Binoban's notification layer once, at app start.
- Hand Firebase's push token to the SDK, and again on every refresh.
- Forward incoming messages to the SDK, which displays them and reports delivery, clicks, and dismissals.
Because Binoban sends data-only messages, step 3 is not optional — nothing is displayed unless your handler forwards the message.
Before you start
- The Native SDK is installed and initialized — Android · iOS — or the React Native bridge is.
- Firebase is set up per Set up Firebase for Binoban push.
- Firebase Cloud Messaging is already integrated in your app. Binoban does not wrap Firebase — that integration stays yours.
Pick your platform
The three steps above are the same everywhere; the entry points are not. Follow the page for your platform:
- App push on Android — runtime permission, the
notification channel, and
FirebaseMessagingService. - App push on iOS — the Background Modes capability,
MessagingDelegate, and forwarding yourUNUserNotificationCenterDelegatecallbacks. - App push in React Native — manifest
meta-data, the
useBinoban()hooks, and iOS host forwarding.
How to tell Binoban's pushes apart from your own
This part is identical on every platform, so it is worth reading once here.
Every message Binoban sends carries source: "binoban" in its data payload.
The backend sets it; you never set it yourself. It is present on every
platform — Android, iOS, and web alike — and it is what keeps Binoban's push
handling and your own from colliding.
Binoban's side is already handled: Notification.notify drops any payload whose
source is not "binoban", so it is safe to call for every message you receive
and your own pushes never reach it. What the SDK cannot do is tell your code
which messages are yours. Since your FCM callback receives Binoban's messages
too, branch on source so your own handling skips them — otherwise a Binoban
push falls through into your handler and gets displayed twice, or routed as if it
were one of yours.
Each platform page shows that branch in its "forward incoming messages" step. See Push events for the full payload key list.
What the SDK handles for you
Once the three steps are wired, none of the following needs code:
- Displaying the notification — title, body, image, and up to 3 action buttons.
- Reporting delivery, clicks (including which button), dismissals, and failures back to Engage.
- Opening the target on Android, including per-button targets. On iOS the SDK deliberately does not open URLs — routing is your app's job.
- Surviving a cold start — a token that arrives with no live SDK instance is cached and replayed on next launch.
Next steps
- Web push — the browser equivalent.
- Push events — what gets emitted, and the payload keys.
- Android SDK · iOS SDK · React Native SDK — the full method surfaces.
- Activate Engage — what is panel-owned vs. developer-owned.