Detect if the app was launched/opened from a push notification describes how to detect whether a native iOS app was opened (that is, either launched or merely made active) v
The solution I found for this is a bit hacky and relies on some potentially weird behavior I noticed regarding the order that event handlers fire. The app I have been working on needed the same functionality, to detect specifically when I open the app via a Push Notification.
What I found was that the handler for PushNotificationIOS
fires before the handler for AppStateIOS
What this meant was that, if I persisted the foreground/background state to memory/AsyncStorage, I could just check it like so in the PushNotification event handler: if (activity === 'background')
and if that was true then I knew that I had just opened the app from a Push Notification.
I'm always keeping the AppStateIOS
foreground/background activity in memory and on disk (using redux and redux-persist respectively) so I just check that whenever I need to know.
This may potentially be too hacky for your purposes, and that behavior might change in the future or it could be localized to just me. Try looking at that solution and see what you think.