-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some firebase functionality not working with react-native-splash-screen #289
Comments
We ran into the same problem recently. From your For us, the lack of notifications when cold launched had nothing to do with
This is the code for our import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtras(getIntent().getExtras()); // Pass along FCM messages/notifications etc.
startActivity(intent);
finish();
}
} |
Thanks for the solution. In my case, this is working , my callbacks are called but the data (body) is undefined. Also, my launchMode is singleTask for both SplashActivity and MainActivity. |
The data is coming through perfectly for us; everything is working exactly the same as it was before we added the splash screen. Our manifest has We have no special intent handling code in public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "OurAppName";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
} |
@rickgrundy Thanks for the code snippet, I got mine working by adding android:launchMode="singleTop" for both Main and Splash activity and passing current intent extras (notification data) to new intent and that to Main Activity |
@rickgrundy thank you for this snippet! package com.chatium.app;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
// Pass along FCM messages/notifications etc.
Bundle extras = getIntent().getExtras();
if (extras != null) {
intent.putExtras(extras);
}
startActivity(intent);
finish();
}
} |
EDITED: Do not use this library. It is not maintained and has problems like this one. Original below: I used the above snippets to fix getInitialNotification but I still wasn't seeing my onNotification and onNotificationOpened handlers firing with the splash screen / firebase combo and the two Activity style advocated in most splash screen tutorials There was something missing with the onNewIntent() data passing between the two activities and singleTop activitiy mode etc. Rather than continue to hack at it I tried to simplify So I did the splash screen in a single Activity, and it worked well. I get the initial theme loading immediately, then the layout inflates and shows the screen, then it goes away in javascript when I call hide, and all my notification handlers from react-native-firebase work correctly. This is in MainActivity.java: @Override
protected void onCreate(Bundle savedInstanceState) {
// Use SplashTheme in AndroidManifest.xml for MainActivity, themes loads before layouts inflate
setTheme(R.style.AppTheme); // Now set the theme from Splash to App before setContentView
setContentView(R.layout.launch_screen); // Then inflate the new view
SplashScreen.show(this); // Now show the splash screen. Hide it later in JS
super.onCreate(savedInstanceState);
} AndroidManifest.xml snippet <activity
android:name=".MainActivity"
android:theme="@style/LaunchTheme"
android:launchMode="singleTop"
android:label="@string/app_name"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> styles.xml <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/background_launch</item>
</style> This issue should be closed now I think. There's no problem with splash screen, it's just subtle to use it correctly |
I can also confirm this for react-native-push-notification
I can also confirm this working for react-native-push-notification |
The above examples are all Android related. I am having issues using For me android is just fine. |
No clues per se, but creating a minimal reproduction should be possible? Then you'd have a basis to troubleshoot. I just recently checked this in my app on ios using the three you mention, and it worked for me so I can't reproduce |
I have an similar issue. All my remote notifications, not launch/open the app when i tap on notification. Not even in background, foreground or killed. I've followed the sugestion of @mikehardy to use SplashScreen as single activity, but not works at all for me. |
@mikehardy I'm not using React Native Splash Screen either and having the same issues as @Anujmoglix, I believe react-native-bootsplash has a ton of bugs as well even with push notifications that Expensify ran into, so I'm not sure it's a good alternative at all. |
React native boosplash has literally 4 bugs total logged. 2 are aesthetic Nothing like what was happening here. There's one iOS bug there about a hide too soon but it doesn't have a repro yet not sure there is any other library maintained as well as that |
@pateljoel I stlil await any substantiation for your assertion bootsplash has a "ton of bugs" so far sounds like smoke, no fire. Please back your assertions. |
@mikehardy I moved away from both of these libraries as the bugs were untenable for me and I ended up writing my own for my needs. Last I checked over at |
Vague assertions, no reproducible bug reports 🤔 |
I should react splashActivity.java? I don't have it... |
@jackimatin |
Relacing react-native-splash-screen by react-native-bootsplash is not fixing all the issues: |
I have used react-native-firebase in my react native project[android platform] to show the app notification. With this library i am able to show the notification when the app is in the foreground/background/closed state.
According to the react native firebase documentation the onNotificationOpened should be triggered when the app is opened by the notification tap. However this is not happening in my case, the onNotificationOpened method is never called and getInitialNotification method always gets a null value.
I am also using react-native-splash-screen library to display the splashscreen.
Here's my code from App.js >> componentDidMount()
AndroidManifest.xml
NOTE: Problem was caused by the react-native-splash-screen library, I was able to fix this after removing the react-native-splash-screen library from the android project. However i am still not sure how i can make this work when using the react-native-splash-screen.
The text was updated successfully, but these errors were encountered: