React Native integration of push notifications SDK
Clone or download
Latest commit 48935d8 Apr 19, 2018


React Native integration of push notifications SDK

Getting started

$ npm install react-native-batch-push --save

Mostly automatic installation

react-native link react-native-batch-push

iOS specific

If you don't have a Podfile or are unsure on how to proceed, see the CocoaPods usage guide.

In your Podfile, add:

pod 'Batch', '~> 1.10'


cd ios
pod repo update # optional and can be very long
pod install



Go to the Batch dashboard, create an Android app and setup your GCM configuration. Then, in android/app/build.gradle, provide in your config:

defaultConfig {
    resValue "string", "GCM_SENDER_ID", "%YOUR_GCM_SENDER_ID%"
    resValue "string", "BATCH_API_KEY", "%YOUR_BATCH_API_KEY%"

Note that you can also customize the keys depending on your product flavor or build type.

Mobile landings and in-app messaging

If you set a custom launchMode in your AndroidManifest.xml, add in your

// import android.content.Intent;
// import;

public void onNewIntent(Intent intent)
    Batch.onNewIntent(this, intent);



Go to the Batch dashboard, create an iOS app and upload your iOS push certificate. Then, in Info.plist, provide:



Enabling push notifications

import BatchPush from 'react-native-batch-push';

// when you want to ask the user if he's willing to receive push notifications (required on iOS):

// if you want to give a custom identifier to the user, you need to call loginUser and logoutUser
BatchPush.loginUser('theUserId'); // call this when the user logs in; add Platform.OS if you want to target a specific platform on your backend
BatchPush.logoutUser(); // call this when the user logs out

Custom User Attribute

import BatchPush from 'react-native-batch-push';

// if you want to set a user attribute, use setAttribute (takes two string arguments)
BatchPush.setAttribute('age', '23');

Track User Location

import BatchPush from 'react-native-batch-push';

// if you want to track the user's location
BatchPush.trackLocation({ latitude: 48, longitude: 2.3 });


import BatchPush from 'react-native-batch-push';

BatchPush.fetchNewNotifications('theUserId', 'authKey')
  .then(notifications => {
    // notifications is Array<{ title: string, body: string, timestamp: number, payload: Object }>
  .catch(e => console.warn('BatchPush error', e));