Commit 25ebef76 authored by Libin Lu's avatar Libin Lu

add initialData and initialAction

parent 971ab0b7
......@@ -65,14 +65,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
......@@ -81,6 +73,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
......
......@@ -15,23 +15,44 @@ import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.messaging.RemoteMessage;
import android.os.Bundle;
import android.util.Log;
import android.content.Context;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class FIRMessagingModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
public class FIRMessagingModule extends ReactContextBaseJavaModule {
private final static String TAG = FIRMessagingModule.class.getCanonicalName();
Intent mIntent;
public FIRMessagingModule(ReactApplicationContext reactContext) {
public FIRMessagingModule(ReactApplicationContext reactContext, Intent intent) {
super(reactContext);
getReactApplicationContext().addLifecycleEventListener(this);
mIntent = intent;
registerNotificationHandler();
registerTokenRefreshHandler();
registerMessageHandler();
}
@Override
public Map<String, Object> getConstants() {
Map<String, Object> constants = new HashMap<>();
if (mIntent != null) {
if(mIntent.getExtras() != null) {
Map<String, Object> extra = new HashMap<>();
Bundle data = mIntent.getExtras();
Set<String> keysIterator = data.keySet();
for(String key: keysIterator){
extra.put(key, data.get(key));
}
constants.put("initialData", extra);
}
constants.put("initialAction", mIntent.getAction());
}
return constants;
}
@Override
......@@ -73,7 +94,7 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
}, intentFilter);
}
private void registerNotificationHandler() {
private void registerMessageHandler() {
IntentFilter intentFilter = new IntentFilter("com.evollu.react.fcm.ReceiveNotification");
getReactApplicationContext().registerReceiver(new BroadcastReceiver() {
......@@ -96,17 +117,4 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
}
}, intentFilter);
}
@Override
public void onHostResume() {
}
@Override
public void onHostPause() {
}
@Override
public void onHostDestroy() {
}
}
package com.evollu.react.fcm;
import android.content.Intent;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
......@@ -11,16 +13,20 @@ import java.util.Collections;
import java.util.List;
public class FIRMessagingPackage implements ReactPackage {
Intent mIntent;
public FIRMessagingPackage(){
}
public FIRMessagingPackage() {
public FIRMessagingPackage(Intent intent){
mIntent = intent;
}
@Override
public List<NativeModule> createNativeModules(
ReactApplicationContext reactContext) {
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new FIRMessagingModule(reactContext));
modules.add(new FIRMessagingModule(reactContext, mIntent));
return modules;
}
......
......@@ -5,8 +5,6 @@ var {NativeModules} = React;
var FIRMessaging = NativeModules.RNFIRMessaging;
console.log(NativeModules.RNFIRMessaging);
class FCM {
static getFCMToken() {
......@@ -19,4 +17,7 @@ class FCM {
}
FCM.initialData = FIRMessaging.initialData;
FCM.initialAction = FIRMessaging.initialAction;
module.exports = FCM;
\ No newline at end of file
......@@ -26,9 +26,10 @@ RCT_EXPORT_MODULE()
- (NSDictionary<NSString *, id> *)constantsToExport
{
NSDictionary<NSString *, id> *initialNotification =
[_bridge.launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] copy];
return @{@"initialNotification": RCTNullIfNil(initialNotification)};
NSDictionary<NSString *, id> *initialNotification = [_bridge.launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] copy];
NSString *initialAction = [[initialNotification objectForKey:@"aps"] objectForKey:@"category"];
return @{@"initialData": RCTNullIfNil(initialNotification), @"initialAction": RCTNullIfNil(initialAction)};
}
- (void)dealloc
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment