# react-native-push-notification
**Repository Path**: mirrors_airbnb/react-native-push-notification
## Basic Information
- **Project Name**: react-native-push-notification
- **Description**: React Native Local and Remote Notifications
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-08
- **Last Updated**: 2026-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# React Native Push Notifications [](http://badge.fury.io/js/react-native-push-notification)
React Native Local and Remote Notifications for iOS and Android
## Installation
`npm install react-native-push-notification`
## iOS Installation
The component uses PushNotificationIOS for the iOS part.
[Please see: PushNotificationIOS](https://facebook.github.io/react-native/docs/pushnotificationios.html#content)
## Android Installation
In your `AndroidManifest.xml`
```xml
.....
.....
```
In `android/settings.gradle`
```gradle
...
include ':react-native-push-notification'
project(':react-native-push-notification').projectDir = file('../node_modules/react-native-push-notification/RNPushNotificationAndroid')
```
In `android/app/build.gradle`
```gradle
...
dependencies {
...
compile project(':react-native-push-notification')
}
```
Register module (in `MainActivity.java`)
```java
import android.content.Intent; // <--- Import Intent
import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage; // <--- Import Package
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
private ReactNativePushNotificationPackage mReactNativePushNotificationPackage; // <------ Add Package Variable
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "YOUR_APP_NAME";
}
/**
* Returns whether dev mode should be enabled.
* This enables e.g. the dev menu.
*/
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
/**
* A list of packages used by the app. If the app uses additional views
* or modules besides the default ones, add more packages here.
*/
@Override
protected List getPackages() {
mReactNativePushNotificationPackage = new ReactNativePushNotificationPackage(this); // <------ Initialize the Package
return Arrays.asList(
new MainReactPackage(),
new VectorIconsPackage(),
new FabricPackage(),
mReactNativePushNotificationPackage // <---- Add the Package
);
}
// Add onNewIntent
@Override
protected void onNewIntent (Intent intent) {
super.onNewIntent(intent);
mReactNativePushNotificationPackage.newIntent(intent);
}
....
}
```
## Usage
```javascript
var PushNotification = require('react-native-push-notification');
PushNotification.configure({
// (optional) Called when Token is generated (iOS and Android)
onRegister: function(token) {
console.log( 'TOKEN:', token );
},
// (required) Called when a remote or local notification is opened or received
onNotification: function(notification) {
console.log( 'NOTIFICATION:', notification );
},
// ANDROID ONLY: (optional) GCM Sender ID.
senderID: "YOUR GCM SENDER ID",
// IOS ONLY (optional): default: all - Permissions to register.
permissions: {
alert: true,
badge: true,
sound: true
},
// Should the initial notification be popped automatically
// default: true
popInitialNotification: true,
/**
* IOS ONLY: (optional) default: true
* - Specified if permissions will requested or not,
* - if not, you must call PushNotificationsHandler.requestPermissions() later
*/
requestPermissions: true,
});
```
## Handling Notifications
When any notification is opened or received the callback `onNotification` is called passing an object with the notification data.
Notification object example:
```javascript
{
foreground: false, // BOOLEAN: If the notification was received in foreground or not
message: 'My Notification Message', // STRING: The notification message
data: {}, // OBJECT: The push data
}
```
## Local and Schedule Notifications
`PushNotification.localNotification(details: Object)`
`PushNotification.localNotificationSchedule(details: Object)` (IOS ONLY)
EXAMPLE:
```javascript
PushNotification.localNotification({
/* Android Only Properties */
id: 0, // (optional) default: Autogenerated Unique ID
title: "My Notification Title", // (optional)
ticker: "My Notification Ticker", // (optional)
largeIcon: "ic_launcher", // (optional) default: "ic_launcher"
smallIcon: "ic_notification", // (optional) default: "ic_notification" with fallback for "ic_launcher"
/* iOS and Android properties */
message: "My Notification Message" // (required)
});
// IOS ONLY
PushNotification.localNotificationSchedule({
message: "My Notification Message", // (required)
date: new Date()
});
```
## Sending Notification Data From Server
Same parameters as `PushNotification.localNotification()`
## iOS Only Methods
`PushNotification.checkPermissions(callback: Function)` Check permissions
`PushNotification.setApplicationIconBadgeNumber(number: number)` set badge number
`PushNotification.getApplicationIconBadgeNumber(callback: Function)` get badge number
`PushNotification.abandonPermissions()` Abandon permissions
### TODO
- [ ] Add `PushNotification.localNotificationSchedule()` Android support