Почему React native pu sh уведомление всегда отображается два раза? - PullRequest
1 голос
/ 19 апреля 2020

Я пытаюсь показать некоторые локальные уведомления в React-Native, используя пакет react-native-push-notification, но когда я запускаю уведомление, оно всегда отображается два раза. Это первый раз, когда я пробую реакцию на нативную, поэтому я думаю, что могут быть некоторые проблемы с самой конфигурацией.

Вот коды, которые я сделал, чтобы это работало:

  1. Установленный пакет и связанный

    • npm установка --save response-native-pu sh-уведомление
    • npx реактивно-нативная ссылка реактив-native-pu sh-уведомления
  2. Обновлен android/app/src/main/AndroidManifest.xml файл:

    Добавлен следующий код выше application тег

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <permission
        android:name="${applicationId}.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />

Добавлен следующий код внутри тег приложения

      <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_name"
              android:value="YOUR NOTIFICATION CHANNEL NAME"/>
      <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_description"
                  android:value="YOUR NOTIFICATION CHANNEL DESCRIPTION"/>
      <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
                  android:resource="@color/white"/> 
Создал файл react-native-app\android\app\src\main\res\values\colors.xml и добавил следующий код:
      <resources>
          <color name="white">#FFF</color>
      </resources>
Следующий файл автоматически обновляется при выполнении команды react-native link:

android / app / src / main / java / com / churchutility / MainApplication. java

      import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage;
Обновлено android/build.gradle, добавлено следующее внутри buildScript ext раздела:
 buildscript {
     ext {
+        googlePlayServicesVersion = "+"
+        firebaseVersion = "+"
 ----
Файл android/settings.gradle обновляется автоматически:
include ':react-native-push-notification'
project(':react-native-push-notification').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-push-notification/android')

В программе native native я создал класс, как показано ниже, и создал экземпляр из App.js
import PushNotification from 'react-native-push-notification';

export default class ReminderService {
  constructor() {
    PushNotification.configure({
      onRegister: function(token) {
        global.alert('TOKEN:', token);
      },
      onNotification: function(notification) {
        global.alert('NOTIFICATION:', notification);
        // notification.finish(PushNotificationIOS.FetchResult.NoData);
      },
      permissions: {
        alert: true,
        badge: true,
        sound: true,
      },
      popInitialNotification: true,
      requestPermissions: true,
    });
    this.showNotification('Local notification', 'Not scheduled');
  }

  showNotification = (title, message) => {
    PushNotification.localNotification({
      title: title,
      message: message,
    });
  };
}

Согласно уведомлению об ожидании, но оно всегда отображается два раза в симуляторе и устройство. Пожалуйста, дайте мне знать, что я делаю здесь неправильно, или есть лучший способ или пакет сделать это в react-native.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...