【问题标题】:Implementation of WhatsApp/Telegram like calling feature in Flutter在 Flutter 中实现类似 WhatsApp/Telegram 的呼叫功能
【发布时间】:2020-07-21 05:40:02
【问题描述】:

当颤振应用程序在后台或从最近的任务中清除(清除 ram)时,如何实现 WhatsApp/Telegram 之类的呼叫通知?谁能告诉我具体怎么做?

【问题讨论】:

  • 你能描述一下 WhatsApp 或 Telegram 在做什么吗?我都没有用,我不知道你在说什么......
  • 我知道在使用应用程序时该怎么做,但我的应用程序即使在后台也需要通知有人来电。

标签: flutter background-process phone-call


【解决方案1】:

关于这个确切的主题有一个很棒的 youtube 系列。在该系列中,一位名叫 CS Guy 的 YouTuber 创建了 Skype 的克隆。我已经放置了视频的链接,他在其中解释了如何在用户呼叫另一个用户时创建弹出屏幕,但是,您可能需要观看该系列中以前的视频才能让一切正常工作。它很长,但我建议您观看整个内容。在呼叫用户时显示通知方面,我建议您观看下面列出的 Fireship 的视频。在视频中,他解释了如何在 Firestore 中发生特定事件时在后台发送通知。

我无法详细解释实现您想要的整个过程,但我可以大致概述您需要做什么。

  1. 观看 CS Guy 的视频/整个系列并完成所有内容
  2. 了解如何通过 Fireship 在 Firebase 中发送推送通知
  3. 在调用集合中创建新文档时(您将在完成 cs guy 系列后了解)触发云功能。
  4. 在云函数中找到调用接收方的 uid,并从 Firestore 中获取用户的令牌。
  5. 最后,向接收方发送通知,告知他们有来电。

CS 家伙: https://youtu.be/v9ngriCV0J0

火船:https://youtu.be/2TSm2YGBT1s

我在我的申请中做了完全相同的事情,如果您需要进一步的帮助,可以为您提供帮助,但是,请先浏览两个视频/系列。

【讨论】:

  • 如果这回答了您的问题,请点赞并接受它作为正确答案。
  • 这个方法行不通,是个hack。当应用程序打开并且您在正确的屏幕上时,它可以工作。它不像 WhatsApp/Telegram
  • @AbdullahKhan 它是如何破解的?即使用户不在应用程序中,也会发送通知。
  • CS Guy 不对传入屏幕使用 Firestore 通知。他使用流监听器,它只在应用程序打开时工作。 Firestore 后台通知在 iOS 上不起作用,因此在 iOS 上也不起作用。其次,要唤醒 android 设备,我们必须使用“ConnectionServices”,而对于 iOS “CallKit”,如果没有它,我们就无法像 Whatsapp 那样显示真实的传入屏幕,CS Guy 也不会使用这些。
  • 很抱歉,我不知道如何帮助您。
【解决方案2】:

您可以将flutter_local_notifications 插件与firebase_messaging 插件一起使用。

来自flutter_local_notifications插件的文档;

  • [Android] 支持以下通知样式
    大图
    大文本
    收件箱
    消息传递

来自 firebase_messaging 插件的文档;

使用此插件,您的 Flutter 应用可以在 Android 和 iOS 上接收和处理推送通知以及数据消息。

【讨论】:

  • 如何检测来电?主要用例仅用于检测来电。我可以使用 agora 请求相同的请求,但它不提供显示其他用户来电通知的方式。
  • 如果不看看您的应用程序是如何工作的,就没有 1 行答案可以给您。该应用程序在来电时启动?您可以在应用程序启动时有来电时推送通知。或者,您可以通过 firebase 消息推送“来电”消息,并使用该消息推送通知。这个article 通知和this one 执行后台代码将有所帮助。
猜你喜欢
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
相关资源
最近更新 更多