当前位置: 首页 > 知识库问答 >
问题:

如何在android上删除react原生firebase通知点击操作?

钱安和
2023-03-14

我正在使用react native firebase设置前台

该应用程序有一个firebase.messaging(). onMessage()监听器附加,当它在前台收到通知时,我使用firebase.notifications.display通知(通知)来显示通知。

然后onNotificationOpen侦听器接收通知并将用户导航到不同的屏幕。

问题是,从onNotificationOpened接收的通知对象有一个actionandroid。意图行动查看,每次单击它都会启动Main活动。我不知道这个动作字符串来自哪里,因为客户端应用程序和后端都没有设置任何点击动作。还有这个android。意图行动查看恰好是我的main活动的意图过滤操作。

我不希望ContentIntent操作绑定到我的通知,我希望我的应用程序处理到正确组件的导航。

还有一个问题是,单击通知会卸载并重新装载我的主组件,并导致删除通知侦听器。

我尝试过在AndroidManifest中设置Mainactiveandroid: LaunchMode=singleTop,但活动仍会重新启动。我还尝试过使用singleTasksingleInstance标准

这是我的显示通知功能,称为onMessage

export async function displayNotification(message: RemoteMessage) {
  try {
    const notification = new firebase.notifications.Notification();

    const { title, message: messageBody, ...messageData } = message.data;

    notification
      .setNotificationId(message.messageId)
      .setTitle(title)
      .setBody(messageBody)
      .setData({
        ...messageData
      })
      .setSound('default');

    if (isAndroid) {
      // Build a channel for notifications on Android

      const channel = await createAndroidChannel();

      notification.android
        .setBigText(messageBody)
        .android.setChannelId(channel.channelId)
        .android.setAutoCancel(true) // Remove on press
    }

    await notifications.displayNotification(notification);
    return notification;
  } catch (error) {

  }
}

预期结果是:用户将应用程序置于前台

实际结果是:用户点击前台通知后

共有1个答案

万俟靖
2023-03-14

这里的问题是,当你的应用程序处于前台或墨水后台时,已经有一个应用程序实例正在运行。因此,当您按下通知时,它会再次创建mainActivity的另一个实例并重新启动它。要解决这个问题,你必须了解android的发布模式

请参考此链接进行描述

尝试在AndroidManifest中将launchMode设置为singleTop。xml文件。然后重新安装并测试应用程序。这应该能解决你的问题。!

 类似资料:
  • 我正在使用Firebase作为web应用程序。它是用纯Javascript编写的,不使用外部库。 我可以“推送”并使用“.on(”child_added“)”检索数据,但是“.remove()”不能按照它所说的方式工作。根据 API, “Firebase.remove()-删除此Firebase位置的数据。子位置的任何数据也将被删除。删除的效果将立即可见。” 然而,移除不是立即发生的;只有在整个脚

  • 由于API级别为16(Jelly Bean),因此可以使用 但是当我向通知添加一个操作并且按下该操作时,通知不会被取消。当单击通知本身时,可以通过以下方式取消通知 或 但显然,这与通知相关联的操作无关。 有什么提示吗?或者这还不是API的一部分?我什么也没找到。

  • 当应用程序处于后台或关闭状态时,收到的推送通知会转到顶部栏(通知中心) 稍后点击一个通知将打开应用程序,并为该特定消息调用onNotification回调。在iOS中,getDelievedNotifications返回所有挂起通知的数组 如何在Android系统中实现? 谢谢 (编辑:我正在使用https://github.com/zo0r/react-native-push-notificat

  • 有两种类型的应用程序,一种将由用户使用,另一种将由我(即所有者)使用。因此,每当任何用户将内容(数据)添加到Cloud FiRecovery数据库时,我都希望收到通知。简而言之,每当Cloud FiRecovery数据库发生变化时,如何发送通知?

  • > firebaseService类 公共类FirebaseMessagingService扩展了com.google.firebase.messaging。FirebaseMessagingService{private static int count=0;@Override public void onMessageReceived(@NonNull RemoteMessage Remote

  • 我有一个带有EditText和按钮的活动。当用户单击EditText时,会显示键盘,他可以输入一些Text-很好。但是当用户单击按钮时,我希望EditText不再对焦,即键盘隐藏,直到用户再次单击EditText。 单击按钮后,如何“隐藏EditText的焦点”。我可以在按钮的OnClick方法中添加一些代码来实现这一点? 编辑: 顺致敬意,