【问题标题】:Flutter - How can I create an Incoming Call Notification?Flutter - 如何创建来电通知?
【发布时间】:2020-08-19 02:08:42
【问题描述】:

我正在构建一个允许用户使用 agora_rtc_engine 互相呼叫的应用程序。 我目前一直在尝试实现一个通知系统,该系统会在用户接到电话时提醒他们。

我正在使用 Firebase 消息传递通知。

我有以下问题:

  1. 如何将默认通知卡替换为具有接听或拒绝来电按钮的自定义通知卡?

  2. 如何指定通知在屏幕上停留的时间?来电会在关闭前响铃约 30 秒,因此我希望我的通知卡在这段时间内显示在屏幕上。

我一直在查看 flutter_local_notifications,但它们没有“来电”通知样式。

高度赞赏任何信息。谢谢!

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?
  • 有什么解决方案吗?
  • 嘿任何东西..?
  • 嗨!自从我发布了这个问题后,我就离开了这个项目,因为我找不到任何帮助。我能够从后台通知启动铃声并设置通知点击操作以将用户发送到我的来电页面。不幸的是,这是一种糟糕的用户体验,并且无法在 iOS 上运行。

标签: flutter push-notification


【解决方案1】:

我建议您尝试使用 Firebase 云消息传递。

查看官方文档的“设置消息的生命周期”部分: https://firebase.google.com/docs/cloud-messaging/concept-options#ttl

您将在此处找到一个带有 time_to_live 参数的云消息示例 - 它决定了通知在接收者的设备上激活多长时间。

这是一个包含 TTL 的请求示例(取自官方文档):

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    },
    "apns":{
      "headers":{
        "apns-expiration":"1604750400"
      }
    },
    "android":{
      "ttl":"4500s"
    },
    "webpush":{
      "headers":{
        "TTL":"4500"
      }
    }
  }
}

【讨论】:

  • 你能提供一个小的sn-p代码作为例子吗?链接可以更改。
  • 我编辑了答案 - 添加了一小段代码
猜你喜欢
  • 2022-06-21
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2014-02-10
  • 2018-09-17
相关资源
最近更新 更多