【问题标题】:How do I clear Notifications when I open the app manually and they are not tapped?当我手动打开应用程序但未点击通知时,如何清除通知?
【发布时间】:2020-04-22 19:07:39
【问题描述】:

我设法创建了一个 Firebase 云功能来向我发送有关最新聊天消息的通知。一切正常。

当应用程序在后台或从未启动时通知到达,但当应用程序在前台时我仍然可以收到它。

工作正常:

  • 点击通知以打开应用并关闭通知。
  • 滑动以关闭通知。

问题:

  • 手动打开应用不会关闭通知。

想法:

  • 在应用恢复或启动时,我可以清除同一订阅的通知或所有通知吗?我没有找到任何通过 Flutter 执行此操作的示例,但仅在 Android 上。

【问题讨论】:

  • 你知道如何将解决方案应用到 Flutter 应用吗?我不知道如何实现它。
  • 如 github 存储库中所述,您需要将该代码放在 MainActivity.java 文件中,该文件将位于项目的 android 文件夹中。
  • 是的,我这样做了...我的项目中没有 MainActivity.java,所以我在此路径 Android/App/src/MainActivity.java 中手动添加了一个并粘贴了代码,但它仍然没有不行。
  • 默认应该有一个,有没有MainActivity.kt文件?如果是,请将代码添加到其中。当您粘贴 java 代码时,它会要求自动转换为 kotlin,请接受。

标签: firebase flutter firebase-cloud-messaging


【解决方案1】:

如果你使用 Kotlin,请在 MainActivity.kt 中写下类似的内容:

package com.posignal.app

import android.app.NotificationManager
import android.content.Context
import io.flutter.embedding.android.FlutterActivity


class MainActivity: FlutterActivity() {

    override fun onResume() {
        super.onResume()
        closeAllNotifications();
    }

    private fun closeAllNotifications() {
        val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        notificationManager.cancelAll()
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多