Локальное уведомление не появляется при нажатии на кнопки действий

#react-native #react-native-push-notification

#реагировать-родной #react-native-push-уведомление

Вопрос:

Я создал локальные уведомления, и они работают нормально, за исключением того, что они не появляются, если я нажимаю на кнопки действий. Он появляется, если я нажимаю на само уведомление. Есть ли способ изменить это? Я хочу, чтобы уведомление появлялось и при нажатии на кнопки действий.

Здесь я настраиваю уведомления:

     PushNotification.configure({
        onNotification: function(notification) {
            onNotificationOpened(notification)
            console.log('Opened notification:', notification)
        },

        permissions: {
            alert: true,
            badge: true,
            sound: true
        },
        popInitialNotification: true,
        requestPermissions: true
    })
 

И здесь я проверяю, были ли нажаты кнопки действий:

     function onNotificationOpened(notification) {
        if (notification.action == 'Yes') {
            cancelNotification(notification.id)
            // some code
             })
        } else {
            cancelNotification(notification.id)
            // some code
        }
    }
 

Еще один вопрос, который у меня есть по поводу кнопок действий. Независимо от того, какой из них я выберу, он откроет мое приложение. Есть ли способ сделать кнопку действия типа «Напомнить позже», которая перенесет уведомление, не открывая приложение?

Комментарии:

1. Я сталкиваюсь с той же проблемой

2. Я до сих пор не решил эту проблему. Если вы найдете решение, пожалуйста, дайте мне знать. Я сделаю то же самое.

Ответ №1:

Если вы показываете локальное уведомление и хотите выводить уведомление при нажатии кнопки действия, вы можете использовать invokeApp prop . В документации по реагированию на родное push-уведомление говорится

Это позволяет нажимать на действия, чтобы вернуть приложение на передний план или остаться в фоновом режиме, по умолчанию: true

установите invokeApp: false, чтобы выводить уведомление, не открывая приложение, например

 PushNotification.localNotification({
    message: "My Notification Message", 
    channelId: "firebase-channel", 
    foreground: true, 
    actions: ["Accept", "Reject"], 
    invokeApp : false
});