invertase / notifee

⚛️ A feature rich notifications library for React Native.
https://notifee.app
Apache License 2.0
1.88k stars 228 forks source link

iOS: A way to override notifee handling push notification press #1013

Closed gezquinndesign closed 8 months ago

gezquinndesign commented 8 months ago

I found this issue and can see it was closed without resolution. It's close to what I would like to see.

I'm trying to set up Shake's Chat feature. To handle foreground notifications, the application needs to set itself as the UNUserNotificationCenterDelegate , and implement the didReceiveResponse and willPresentNotification methods.

The willPresentNotification works fine and the notification displays correctly. However, the didReceiveResponse is failing because it is being handled by Notifee. Is there any way to override this method in a react-native-project via the AppDelegate.mm file as suggested in the Shake docs?

gezquinndesign commented 8 months ago

I found this PR, applied the changes and this fixes my issue, so closing this in anticipation of that getting merged.

carlbleick commented 8 months ago

@gezquinndesign Did you replace all push notification press actions with your own custom UNUserNotificationCenterDelegate by Shake's Chat feature? Or are you still managing some push notification presses directly via notifee?

gezquinndesign commented 8 months ago

Hi @carlbleick, if and when the PR gets merged, I’m expecting to still use notifee to manage the non-shake notifications. The custom handler intercepts the notification press, checks if it’s from Shake and deals with it accordingly. If it’s not a Shake notification it just calls the usual completionHandler. I hope that makes sense. Any reason you want to know?

carlbleick commented 8 months ago

@gezquinndesign Thanks for your reply! It makes sense to me. I just dont quite understand how the notifee code knows wether the Shake delegate is reacting to that specific notification or not. I understood it in a way that notifee would always call the Shake delegate as soon as there is one - not explicitly checking wether that specific notification is actually handled.

Have you tested the behaviour yourself already or are you waiting for the PR merge?

I want to know because I am currently patching the library myself to do almost the same (https://github.com/invertase/notifee/issues/925).

gezquinndesign commented 8 months ago

Hi @carlbleick, I applied the changes in the PR directly in my app code along with the code changes in AppDelegate suggested by Shake, it worked as expected. However, I didn’t get round to testing non-Shake notification presses with those changes applied but I believe they should still be handled by notifee because the fallback is just to run the original delegate completionHandler.

My understanding might be a little off but I’d suggest applying the PR changes directly in your own code to see if the merge would resolve your own situation.