Реагировать на собственное push-уведомление о обратном вызове несовместимо

Я уже довольно давно использую библиотеку response-native-push-messages для локальных уведомлений. Теперь мне нужны удаленные беззвучные уведомления. По сути, я отправляю уведомление, которое доставляется обратному вызову onNotification, и отправляю локальное уведомление в центр уведомлений.

Я ожидаю, что обратный вызов onNotification будет срабатывать каждый раз, когда я получаю уведомление, и я открываю приложение, нажимая на уведомление. Проблема в том, в зависимости от того, куда я звоню PushNotification.configure({...})На Android он запускает Уведомление, когда уведомление доставляется, ИЛИ когда я нажимаю на него, но никогда оба! Мой код:

// if here: calls onNotification when it's received
PushNotifications.configureNotifications();

export default class App extends React.Component {
    constructor(props) {
        // if here: calls onNotification when I click on it to open an app
        PushNotifications.configureNotifications();
        super(props);
    }

    render() { ... }
}

PushNotifications.configureNotifications() - это просто простая оболочка над вызовом конфигурации библиотеки. Да, пытался держать его в обоих местах - не работает. Что я делаю неправильно?

Я всегда отправляю данные в виде push-уведомлений.

1 ответ

Решение

Документация говорит не помещать конфигурацию в жизненный цикл React. В противном случае Android не будет иметь правильного поведения (у меня была такая большая боль с этим пунктом!). Здесь у вас есть хороший учебник: https://product.farewell.io/visible-react-native-push-notifications-that-work-on-both-ios-and-android-5e90badb4a0f Это плохо объяснено, но подход идеально. Используйте класс для инициализации и вызова методов. Инициализируйте класс в верхнем компоненте, как он предлагает. Работает хорошо. Заполните недостающую информацию с помощью этого учебника: https://shift.infinite.red/react-native-node-js-and-push-notifications-e851b279a0cd Получайте удовольствие!

Другие вопросы по тегам