Cross-platform push notifications, In-App messaging, and more for React Native applications.
- Documentation
- Features
- Installation
- AI-Assisted Integration
- Quick Start
- API Reference
- Support
- License
- Integration Guide — step-by-step setup
- API Reference — full API documentation
- Sample Project — ready-to-run demo app
- Push Notifications — register, receive, and handle push notifications on iOS and Android
- In-App Messages — trigger and display in-app messages based on events
- Tags & Segmentation — set and get user tags for targeted messaging
- User Identification — associate devices with user IDs for cross-device tracking
- Message Inbox — built-in UI for message inbox with customization options
- Badge Management — set, get, and increment app icon badge numbers
- Local Notifications — schedule and manage local notifications
- Rich Media — modal and legacy Rich Media presentation styles
- Huawei Push — HMS push notification support
- Multi-channel — email, SMS, and WhatsApp registration
- TypeScript Support — full TypeScript definitions included
npm install pushwoosh-react-native-plugin --savecd ios && pod installAdd to your project's build.gradle:
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}Integrate the Pushwoosh React Native plugin using AI coding assistants (Claude Code, Cursor, GitHub Copilot, etc.).
Requirement: Your AI assistant must have access to Context7 MCP server or web search capabilities.
Choose the prompt that matches your task:
Integrate Pushwoosh React Native plugin into my React Native project.
Requirements:
- Install pushwoosh-react-native-plugin via npm
- Initialize Pushwoosh with my App ID in the app entry point
- Register for push notifications and handle pushOpened events via DeviceEventEmitter
Use Context7 MCP to fetch Pushwoosh React Native plugin documentation.
Show me how to use Pushwoosh tags in a React Native app for user segmentation.
I need to set tags, get tags, and set user ID for cross-device tracking.
Use Context7 MCP to fetch Pushwoosh React Native plugin documentation for setTags and getTags.
Integrate Pushwoosh Message Inbox into my React Native app. Show me how to:
- Display the inbox UI with custom styling
- Load messages programmatically
- Track unread message count
Use Context7 MCP to fetch Pushwoosh React Native plugin documentation for presentInboxUI.
import Pushwoosh from 'pushwoosh-react-native-plugin';
import { DeviceEventEmitter } from 'react-native';
// Listen for push notification events
DeviceEventEmitter.addListener('pushOpened', (e) => {
console.log("Push opened: " + JSON.stringify(e));
});
// Initialize Pushwoosh
Pushwoosh.init({
pw_appid: "YOUR_PUSHWOOSH_APP_ID",
project_number: "YOUR_FCM_SENDER_ID"
});
// Register for push notifications
Pushwoosh.register(
(token) => {
console.log("Registered with push token: " + token);
},
(error) => {
console.error("Failed to register: " + error);
}
);import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.setTags(
{ username: "john_doe", age: 25, interests: ["sports", "tech"] },
() => console.log("Tags set successfully"),
(error) => console.error("Failed to set tags: " + error)
);
Pushwoosh.getTags(
(tags) => console.log("Tags: " + JSON.stringify(tags)),
(error) => console.error("Get tags error: " + error)
);import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.setUserId("user_12345");
Pushwoosh.postEvent("purchase_complete", {
productName: "Premium Plan",
amount: "9.99"
});import Pushwoosh from 'pushwoosh-react-native-plugin';
import { processColor, Image } from 'react-native';
// Open inbox UI with custom styling
Pushwoosh.presentInboxUI({
dateFormat: "dd.MM.yyyy",
accentColor: processColor('#3498db'),
backgroundColor: processColor('#ffffff'),
titleColor: processColor('#333333'),
descriptionColor: processColor('#666666'),
listEmptyMessage: "No messages yet"
});
// Or load messages programmatically
Pushwoosh.loadMessages(
(messages) => {
messages.forEach((msg) => {
console.log(msg.title + ": " + msg.message);
});
},
(error) => console.error("Failed to load: " + error)
);
Pushwoosh.unreadMessagesCount((count) => {
console.log("Unread messages: " + count);
});import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.setEmails(
["user@example.com"],
() => console.log("Email set"),
(error) => console.error(error)
);
Pushwoosh.registerSMSNumber("+1234567890");
Pushwoosh.registerWhatsappNumber("+1234567890");import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.init({
pw_appid: "YOUR_PUSHWOOSH_APP_ID",
project_number: "YOUR_FCM_SENDER_ID",
pw_notification_handling: "CUSTOM"
});| Method | Description |
|---|---|
init(config, success?, fail?) |
Initialize the plugin. Call on every app launch |
register(success?, fail?) |
Register for push notifications |
unregister(success?, fail?) |
Unregister from push notifications |
getPushToken(success) |
Get the push token |
getHwid(success) |
Get Pushwoosh Hardware ID |
getUserId(success) |
Get current user ID |
| Method | Description |
|---|---|
setTags(tags, success?, fail?) |
Set device tags |
getTags(success, fail?) |
Get device tags |
setUserId(userId, success?, fail?) |
Set user identifier for cross-device tracking |
setLanguage(language) |
Set custom language for localized pushes |
setEmails(emails, success?, fail?) |
Register emails for the user |
setUserEmails(userId, emails, success?, fail?) |
Set user ID and register emails |
registerSMSNumber(phoneNumber) |
Register SMS number (E.164 format) |
registerWhatsappNumber(phoneNumber) |
Register WhatsApp number (E.164 format) |
| Method | Description |
|---|---|
createLocalNotification(config) |
Schedule a local notification |
clearLocalNotification() |
Clear all pending local notifications |
clearNotificationCenter() |
Clear all notifications from notification center |
| Method | Description |
|---|---|
setApplicationIconBadgeNumber(badge) |
Set badge number |
getApplicationIconBadgeNumber(callback) |
Get current badge number |
addToApplicationIconBadgeNumber(badge) |
Increment/decrement badge |
| Method | Description |
|---|---|
postEvent(event, attributes?) |
Post event to trigger In-App Messages |
setRichMediaType(type) |
Set Rich Media style (MODAL or LEGACY) |
getRichMediaType(callback) |
Get current Rich Media style |
| Method | Description |
|---|---|
presentInboxUI(style?) |
Open inbox UI with optional style customization |
loadMessages(success, fail?) |
Load inbox messages programmatically |
unreadMessagesCount(callback) |
Get unread message count |
messagesCount(callback) |
Get total message count |
messagesWithNoActionPerformedCount(callback) |
Get messages with no action count |
readMessage(id) |
Mark message as read |
readMessages(ids) |
Mark multiple messages as read |
deleteMessage(id) |
Delete a message |
deleteMessages(ids) |
Delete multiple messages |
performAction(id) |
Perform the action associated with a message |
| Method | Description |
|---|---|
setMultiNotificationMode(on) |
Allow multiple notifications in notification center |
setLightScreenOnNotification(on) |
Turn screen on when notification arrives |
setEnableLED(on) |
Enable LED blinking on notification |
setColorLED(color) |
Set LED color (ARGB integer) |
setSoundType(type) |
Set sound type (0=default, 1=none, 2=always) |
setVibrateType(type) |
Set vibration type (0=default, 1=none, 2=always) |
setNotificationIconBackgroundColor(color) |
Set notification icon background color |
enableHuaweiPushNotifications() |
Enable Huawei HMS push support |
| Method | Description |
|---|---|
setCommunicationEnabled(enable, success?, fail?) |
Enable/disable all Pushwoosh communication |
isCommunicationEnabled(success) |
Check if communication is enabled |
| Event | Description |
|---|---|
pushOpened |
Fired when a notification is opened by the user |
pushReceived |
Fired when a notification is received |
Pushwoosh React Native Plugin is available under the MIT license. See LICENSE for details.
Made with ❤️ by Pushwoosh