使用react-native-firebase在React Native上的自定义通知

时间:2019-10-07 18:00:04

标签: firebase react-native push-notification react-native-firebase

我正在使用react-native-firebase库在我的应用程序中实现推送通知,但是我有一个问题。我需要在应用程序中安装自定义通知,并在不向服务器发送标题/正文的情况下从React组装它们,我需要这些通知在应用程序处于后台且完全关闭的情况下进行。

我做了以下尝试,但无济于事。

我在索引中注册了课程

  AppRegistry.registerHeadlessTask(
  "RNFirebaseBackgroundMessage",
  () => bgMessaging
 );

在我的JS类中,我采用以下方式处理


import firebase from "react-native-firebase";

import type { NotificationOpen } from "react-native-firebase";

export default async (notificationOpen: NotificationOpen) => {
  if (notificationOpen) {
    const notification = new firebase.notifications.Notification()
      .setTitle("Android Notification Actions")
      .setBody("Action Body")
      .setNotificationId("notification-action")
      .setSound("default")
      .android.setChannelId("notification-action")
      .android.setPriority(firebase.notifications.Android.Priority.Max);
    // Build an action
    const action = new firebase.notifications.Android.Action(
      "snooze",
      "ic_launcher",
      "My Test Action"
    );
    // This is the important line
    action.setShowUserInterface(false);
    // Add the action to the notification
    notification.android.addAction(action);

    // Display the notification
    firebase.notifications().displayNotification(notification);
  }

  return Promise.resolve();
};

但是我没有成功。从Firebase发送的带有固定标题和正文的推送通知正常工作。

非常抱歉,我的英语水平。

1 个答案:

答案 0 :(得分:0)

嗨,请尝试以下操作

  • .setNotificationId("notification-action")更改为.setNotificationId(notificationOpen.notification.notificationId)

  • .android.setChannelId("notification-action")更改为.android.setChannelId(notificationOpen.notification.android.channelId)