added popInitialNotification function
This function allows you to access the "payload" sent with your notification.
Thanks!
One question.
Why don't you put popInitialNotification in public Map<String, Object> getConstants() rather than here
I think putting it in getConstants will be more like official react native implementation
@oney I didnt realize that could be done. I think that will be a better approach since then we dont need to use an event listener. Also I was thinking that we need to clear that notification after it has been "popped".
Currently, this module uses https://github.com/Neson/react-native-system-notification to create notification in 0.1.7. You can get payload of clicked notification in DeviceEventEmitter.addListener('sysNotificationClick' listener. Please see whether it meets your requirements.
I still more like use popInitialNotification way to get payload, but I prefer to handle creating notification in react-native-system-notification rather than react-native-gcm-android.
DeviceEventEmitter.addListener('sysNotificationClick' doesnt work when the app is not already open.
Yeah DeviceEventEmitter.addListener('sysNotificationClick'... only works when the app is open. popInitialNotification would be ideal.
@RGBz absolutely agree with you. I will remind the author of react-native-system-notification this issue, and wait him to fix it.
Thinking about it a bit more, a callback-based approach like this implementation of popInitialNotification or DeviceEventEmitter.addListener('sysNotificationClick'... is not what you'd want to handle opening the app via notification because it means the app will:
- Open up and start rendering a screen (like an apps home screen)
- Process the DeviceEventEmitter.addListener('sysNotificationClick'... callback
- Render the screen you'd want to show for the notification
The PushNotificationIOS.popInitialNotification API returns its value inline which instead of using a callback. This would allow for you to open the app right up to the screen you'd want on the first render pass.
@oney What are your thoughts? If you agree I can look into making a popInitialNotification that returns its value inline as well.
My opinion is same as you, directly get payload from popInitialNotification like PushNotificationIOS.popInitialNotification, not from or on a callback. I have mentioned here.
Because the notification is created from react-native-system-notification module, the better way of this implementation is making PR in that module instead of here.
I agree, I'll hop over there. Thanks!
I agree a more inline approach would have been suitable. Wasn't sure how to make that work.