react-native-gcm-android
GCM for React Native Android
Demo
https://github.com/oney/TestGcm
Installation
-
Run
npm install react-native-gcm-android --save
-
In
android/build.gradle
dependencies { classpath 'com.android.tools.build:gradle:1.3.1' classpath 'com.google.gms:google-services:1.4.0-beta3' // <- Add this line
- In
android/settings.gradle
, add
include ':RNGcmAndroid', ':app'project(':RNGcmAndroid').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gcm-android/android') include ':react-native-system-notification'project(':react-native-system-notification').projectDir = new File(settingsDir, '../node_modules/react-native-system-notification/android')
- In
android/app/build.gradle
apply plugin: "com.android.application"apply plugin: 'com.google.gms.google-services' // <- Add this line...dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.0.1" compile "com.facebook.react:react-native:0.16.+" compile 'com.google.android.gms:play-services-gcm:8.1.0' // <- Add this line compile project(':RNGcmAndroid') // <- Add this line compile project(':react-native-system-notification') // <- Add this line}
- In
android/app/src/main/AndroidManifest.xml
, add these lines, be sure to changecom.xxx.yyy
to your package
... ... ...
- In
android/app/src/main/java/com/testoe/MainActivity.java
// <- Add this line // <- Add this line ... . . // <- Add this line . // <- Add this line
GCM API KEY
By following Cloud messaging, you can get google-services.json
file and place it in android/app
directory
Usage
'use strict'; var React = ;var AppRegistry View DeviceEventEmitter = React; var GcmAndroid = ;; if GcmAndroidlaunchNotification var notification = GcmAndroidlaunchNotification; var info = JSON; Notification; GcmAndroid; else var Router Route Schema Animations TabBar = ; var YourApp = React; AppRegistry;
- There are two situations.
The app is running on the foreground or background.
GcmAndroid.launchNotification
is null
, you can get notification in GcmAndroid.addEventListener('notification'
listenter.
The app is killed/closed
GcmAndroid.launchNotification
is your GCM data. You can create notification with resolving the data by using react-native-system-notification module.
- You can get info when clicking notification in
DeviceEventEmitter.addListener('sysNotificationClick'
. See react-native-system-notification to get more informations about how to create notification
Troubleshoot
- Do not add
multiDexEnabled true
inandroid/app/build.gradle
even encountercom.android.dex.DexException: Multiple dex files...
failure. - Make sure to install Google Play service in Genymotion simulator before testing.