React-native-notifications: iOS cannot receive first push notification when open in foreground

Created on 21 Feb 2020  路  15Comments  路  Source: wix/react-native-notifications

Version: 3.1.2
RN version: 0.61.5

Using this version and lines from documentation

Notifications.events().registerNotificationReceivedForeground((notification: Notification, completion: (response: NotificationCompletion) => void) => {
      console.log("Notification Received - Foreground", notification.payload);

      // Calling completion on iOS with `alert: true` will present the native iOS inApp notification.
      completion({alert: true, sound: true, badge: false});
        });

I can only see the push notification alert starts from 2nd push notification, but not the first one.

acceptebug

All 15 comments

My current fix:

  1. Downgrade to 3.1.1
  2. In AppDelegate.m
  3. make it conform to UNUserNotificationCenterDelegate
  4. add a line [RNNotifications addNativeDelegate:self]; in didFinishLaunchingWithOptions
  5. add a function:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
    completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
}

BTW, I think the file causing this issue should be RNNotificationCenterMulticast.m

I am also facing the exactly same problem on react-native-notifications: 3.1.2 and react-native 0.60
@samchan1995 I have downgraded to 3.1.1 and added the userNotificationCenter function, but I still have this problem. Can you share your AppDelegate?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

The issue has been closed for inactivity.

Hi @samchan1995, the issue is still there :( Can you please share the way you solved that?

Much appreciated!

The @samchan1995 implementation works for me on version 3.1.1. Do you still need the AppDelegate file ?

RN version: 0.61.4

It's also happening to me but I don't think that downgrade should be the solution. I'll try to track this down.

RN version: 0.61.5
RN Notifications: 3.1.4

To fix this bug in RN notifications 3.1.4, go first to RNNotificationsStore.m, then find the initializer and apply this changes (you can also apply this patch using patch-package):

 diff --git a/node_modules/react-native-notifications/lib/ios/RNNotificationsStore.m b/node_modules/react-native-notifications/lib/ios/RNNotificationsStore.m
index d5e953a..18075da 100644
--- a/node_modules/react-native-notifications/lib/ios/RNNotificationsStore.m
+++ b/node_modules/react-native-notifications/lib/ios/RNNotificationsStore.m
@@ -16,8 +16,13 @@ + (instancetype)sharedInstance {

 - (instancetype)init {
     self = [super init];
-    _actionCompletionHandlers = [NSMutableDictionary new];
-    _presentationCompletionHandlers = [NSMutableDictionary new];
+    if (!_actionCompletionHandlers){
+        _actionCompletionHandlers = [NSMutableDictionary new];
+    }
+    
+    if (!_presentationCompletionHandlers) {
+        _presentationCompletionHandlers = [NSMutableDictionary new];
+    }
     return self;
 }

I won't put together a PR because it seems that the maintainers are not accepting/reviewing PRs, however, if @yogevbd is willing to review it, I'll be glad to do it.

Any updates on this? I'm experiencing the same issue. I'm on v3.2.2.

My current fix:

  1. Downgrade to 3.1.1
  2. In AppDelegate.m
  • make it conform to UNUserNotificationCenterDelegate
  • add a line [RNNotifications addNativeDelegate:self]; in didFinishLaunchingWithOptions
  • add a function:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
    completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
}

this is actually worked :/

Same problem

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

Not stale. Is a fix live yet?

When you set this - [RNNotifications addNativeDelegate:self]; you will not be able to get notification from event listener Notifications.events().registerNotificationOpened that method will not trigger

Was this page helpful?
0 / 5 - 0 ratings

Related issues

WhereBeTheDan picture WhereBeTheDan  路  5Comments

denissb picture denissb  路  5Comments

puremana picture puremana  路  5Comments

kaloncheung124 picture kaloncheung124  路  4Comments

fosteruk picture fosteruk  路  5Comments