从托盘中删除 Firebase 通知(Android、Unity SDK)

Posted

技术标签:

【中文标题】从托盘中删除 Firebase 通知(Android、Unity SDK)【英文标题】:Remove Firebase Notifications from tray (Android, Unity SDK) 【发布时间】:2020-03-04 10:31:37 【问题描述】:

我成功实现了 Firebase Unity SDK 的通知(由云功能发送)。我对通知的理解是,如果应用程序打开并接收它(它有数据和通知部分),它根本不应该出现在通知托盘中,但实际上所有通知都堆积在托盘中。我设法提供了一个 CollapseKey 并根据消息标签至少显示最新的标签,但是只要应用程序处于前台(也当设备进入睡眠状态时),实际上通过托盘通知是没有意义的。 所以我想做的是主动删除有关应用程序启动或从暂停/睡眠中恢复的任何通知。这有可能吗?我没有在 Unity SDK 中找到任何 API。

谢谢,习惯

【问题讨论】:

【参考方案1】:

看起来这也是 android 本身的问题,并且已经有一个很好的 Stack Overflow 帖子。如果你对编写原生 Android 插件不能或不满意(我实际上在 this article 中创建了一个 Android 消息插件作为示例),我想我有一个纯 Unity 解决方案。

首先,您需要拉入Mobile Notifications package(文档是用于预览,但看起来 1.0.3 是稳定的)。

那么您应该可以调用CancellAllNotifications 列出的here。这是一个静态函数,所以你需要的所有代码是:

AndroidNotificationCenter.CancellAllNotifications();

LMK 如果这对你有用!

--帕特里克

【讨论】:

我现在使用的是 CancelAllDisplayNotifications(),但效果很好!非常感谢您的提示! 有什么办法可以避免使用 API 19 (Android 4.4) 来实现这个功能?到目前为止,我使用了 4.1(API 16),甚至包括 Firebase SDK。我刚刚看到我的应用程序的很多活动设备仍然是 认为我可能已经在 Twitter 上回答了这个问题,所以这是我复制/粘贴的一个可能错误的答案:通过 JNI 完成所有工作会更有效.我打赌你可以从 AndroidJavaSclass.CallStatic 调用它:developer.android.com/reference/androidx/core/app/… 然后你需要按照这里的说明来拉取 androidx.core:medium.com/firebase-developers/…

以上是关于从托盘中删除 Firebase 通知(Android、Unity SDK)的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式从通知托盘中删除 UILocalNotification

Phonegap 从后台推送通知 OnResume,它会从托盘中删除我的所有通知

Firebase 通知消息未显示在托盘图标上?

在 Android 托盘上显示 Firebase 通知数据消息

新的 Firebase 通知替换现有的未读 Firebase 通知

Flutter Firebase:抬头通知未在后台显示