Я пытаюсь показать некоторые локальные уведомления в React-Native, используя пакет react-native-push-notification
, но когда я запускаю уведомление, оно всегда отображается два раза. Это первый раз, когда я пробую реакцию на нативную, поэтому я думаю, что могут быть некоторые проблемы с самой конфигурацией.
Вот коды, которые я сделал, чтобы это работало:
Установленный пакет и связанный
- npm установка --save response-native-pu sh-уведомление
- npx реактивно-нативная ссылка реактив-native-pu sh-уведомления
Обновлен 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
.