Flutter - 如何创建来电通知?

Posted

技术标签:

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

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

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

我有以下问题:

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

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

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

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

【问题讨论】:

我也遇到了同样的问题,你找到解决办法了吗? 有什么解决方案吗? 嘿任何东西..? 嗨!自从我发布了这个问题后,我就离开了这个项目,因为我找不到任何帮助。我能够从后台通知启动铃声并设置通知点击操作以将用户发送到我的来电页面。不幸的是,这是一种糟糕的用户体验,并且无法在 ios 上运行。 【参考方案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代码作为例子吗?链接可以更改。 我编辑了答案 - 添加了一小段代码

以上是关于Flutter - 如何创建来电通知?的主要内容,如果未能解决你的问题,请参考以下文章

flutte的第一个hello world程序

关于安卓未接来电通知

使用 Agora Flutter 传入的视频/音频呼叫通知

如何捕捉 C2DM 通知来电话?

flutte学习-编译模式

flutte学习-编译模式