Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
react-native-fcm
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ym
react-native-fcm
Commits
2ba058ab
Commit
2ba058ab
authored
Jul 22, 2016
by
Libin Lu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use onNewIntent from RN 0.30.0
parent
ae8d695e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
34 deletions
+44
-34
README.md
README.md
+1
-1
android/react-native-fcm.iml
android/react-native-fcm.iml
+18
-18
android/src/main/java/com/evollu/react/fcm/FIRMessagingModule.java
...rc/main/java/com/evollu/react/fcm/FIRMessagingModule.java
+25
-15
No files found.
README.md
View file @
2ba058ab
...
...
@@ -71,7 +71,7 @@ Notes:
-
replace
`"fcm.ACTION.HELLO"`
by the
`click_action`
you want to match
And
pass intent into package, edit
`MainActivity.java`
:
If you are using RN<0.30.0 and react-native-fcm < 1.0.15,
pass intent into package, edit
`MainActivity.java`
:
-
RN 0.28+:
...
...
android/react-native-fcm.iml
View file @
2ba058ab
...
...
@@ -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/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"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/java"
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/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"
/>
...
...
@@ -81,6 +73,14 @@
<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"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/java"
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/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"
/>
...
...
@@ -103,31 +103,31 @@
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
exported=
""
name=
"support-v4-23.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"imagepipeline-okhttp3-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-iid-9.2.
0
"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-iid-9.2.
1
"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"okhttp-3.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-common-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"okio-1.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"fbcore-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-common-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"jackson-core-2.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-analytics-impl-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"drawee-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"support-annotations-23.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-core-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"okhttp-urlconnection-3.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-core-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"library-2.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"imagepipeline-base-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"fresco-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"react-native-0.29.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"okhttp-ws-3.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"jsr305-3.0.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"okhttp-ws-3.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"bolts-tasks-1.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-analytics-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-analytics-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-analytics-impl-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"play-services-basement-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"appcompat-v7-23.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"android-jsc-r174650"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"imagepipeline-0.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"play-services-basement-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-messaging-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"react-native-0.30.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"recyclerview-v7-23.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"play-services-tasks-9.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"firebase-messaging-9.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"play-services-tasks-9.2.1"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
android/src/main/java/com/evollu/react/fcm/FIRMessagingModule.java
View file @
2ba058ab
...
...
@@ -4,6 +4,7 @@ import android.content.BroadcastReceiver;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
com.facebook.react.bridge.ActivityEventListener
;
import
com.facebook.react.bridge.Arguments
;
import
com.facebook.react.bridge.LifecycleEventListener
;
import
com.facebook.react.bridge.Promise
;
...
...
@@ -25,13 +26,14 @@ import java.util.HashMap;
import
java.util.Map
;
import
java.util.Set
;
public
class
FIRMessagingModule
extends
ReactContextBaseJavaModule
implements
LifecycleEventListener
{
public
class
FIRMessagingModule
extends
ReactContextBaseJavaModule
implements
LifecycleEventListener
,
ActivityEventListener
{
private
final
static
String
TAG
=
FIRMessagingModule
.
class
.
getCanonicalName
();
Intent
curren
tIntent
;
Intent
ini
tIntent
;
public
FIRMessagingModule
(
ReactApplicationContext
reactContext
)
{
super
(
reactContext
);
getReactApplicationContext
().
addLifecycleEventListener
(
this
);
getReactApplicationContext
().
addActivityEventListener
(
this
);
registerTokenRefreshHandler
();
registerMessageHandler
();
}
...
...
@@ -112,14 +114,9 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
},
intentFilter
);
}
@Override
public
void
onHostResume
()
{
Intent
newIntent
=
getCurrentActivity
().
getIntent
();
if
(
newIntent
==
currentIntent
){
return
;
}
private
WritableMap
parseIntent
(
Intent
intent
){
WritableMap
params
;
Bundle
extras
=
newI
ntent
.
getExtras
();
Bundle
extras
=
i
ntent
.
getExtras
();
if
(
extras
!=
null
)
{
try
{
params
=
Arguments
.
fromBundle
(
extras
);
...
...
@@ -131,15 +128,19 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
params
=
Arguments
.
createMap
();
}
WritableMap
fcm
=
Arguments
.
createMap
();
fcm
.
putString
(
"action"
,
newI
ntent
.
getAction
());
fcm
.
putString
(
"action"
,
i
ntent
.
getAction
());
params
.
putMap
(
"fcm"
,
fcm
);
if
(
currentIntent
==
null
){
return
params
;
}
@Override
public
void
onHostResume
()
{
if
(
initIntent
==
null
){
//the first intent is initial intent that opens the app
sendEvent
(
"FCMInitData"
,
params
);
}
else
{
sendEvent
(
"FCMNotificationReceived"
,
params
)
;
Intent
newIntent
=
getCurrentActivity
().
getIntent
(
);
sendEvent
(
"FCMInitData"
,
parseIntent
(
newIntent
));
initIntent
=
newIntent
;
}
currentIntent
=
newIntent
;
}
@Override
...
...
@@ -150,4 +151,13 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
public
void
onHostDestroy
()
{
}
@Override
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
}
@Override
public
void
onNewIntent
(
Intent
intent
){
sendEvent
(
"FCMNotificationReceived"
,
parseIntent
(
intent
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment