【问题标题】:Flutter/Firebase - How to get "heads up" notification on Android?Flutter/Firebase - 如何在 Android 上获得“提醒”通知?
【发布时间】:2019-08-01 20:31:28
【问题描述】:

我有一个使用 firebase-messaging 插件进行推送通知的 Flutter 应用程序。

我像往常一样在客户端注册 firebase,然后将fcmToken 发送到服务器。

通知是通过使用aiofcm(使用firebase 的XMPP api)的python 服务器创建的。它们是这样创建的:

message = aiofcm.Message(
    device_token = t2,
    notification = {
        "title":notification_title,
        "body":notification_body,
        "sound":"default",
        "tag":link
    },
    data = {
        "click_action": "FLUTTER_NOTIFICATION_CLICK"
    },
    priority=aiofcm.PRIORITY_HIGH
)
await fcm.send_message(message)

在 iOS 上,通知会在屏幕顶部弹出。

在 Android 上,通知托盘中只显示图标 - 不显示任何通知内容。这是在运行 Android P 的 Pixel 3 和 OnePlus 6 上测试的。

理想情况下,我希望通知是这样的“提醒”样式:

在我能够使用data 消息并在本机android 中以编程方式创建通知之前,我想避免这种情况,因为如果应用程序终止,数据消息不会在Android 上传递。

【问题讨论】:

  • notification-message 负载由 Android 设备自动处理。如果目标是实现自定义通知,那么data 是唯一的(当前)方法。

标签: firebase flutter firebase-cloud-messaging


【解决方案1】:

获取提示 - 通知 - 请设置“alert: true”

例子:

notification = {
    "title":notification_title,
    "body":notification_body,
    "sound":"default",
    "alert" : true
    "tag":link
},

【讨论】:

    【解决方案2】:

    对于提醒通知,您需要使用flutter_local_notifications PluginFlutterFire official documentation for notification 甚至建议在前台显示通知(当然也支持后台通知!)并且默认显示抬头通知。

    【讨论】:

      【解决方案3】:

      您应该查看firebase.flutter.dev 文档,它展示了如何在flutter_local_notifiation 的帮助下轻松完成此操作

      【讨论】:

        【解决方案4】:

        您可以使用background fetchlocal notification 包来运行后台应用程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-25
          • 2021-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-29
          • 1970-01-01
          相关资源
          最近更新 更多