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

add initialData and initialAction

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