当前位置: 首页 > 知识库问答 >
问题:

WhatsApp/电报如何确保进线量通知?

东方夕
2023-03-14

我正在制作一个VoIP应用程序。即使应用程序在后台,我如何确保来电通知?GoogleFCM仅在应用程序处于前台时工作(可能是由于android电池优化)。Whatsapp和Telegram做了什么来确保近100%的来电通知?

应用程序处于后台时,不会调用消息接收方法。

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    private static final String TAG = "FCM Service";
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        Log.d(TAG, "Notification Message Body: " + remoteMessage.getData().toString());
    }
}

PS 在浏览Telegram的代码库时,我发现他们总是在前台运行他们的应用程序

<代码>

这就是他们解决通知的方式,还是不仅仅是表面上看起来的那样?

共有1个答案

井旺
2023-03-14

转到您的后端开发人员,告诉他不要在 firebase 通知中使用通知对象。仅发送带有 to 参数的数据对象。

不要从服务器通知对象发送。因为如果在< code>json中使用< code>notification对象,当你的应用在后台时,你的应用不会显示推送通知。

对于e. g.

{
    "to": "e1w6hEbZn-8:APA91bEUIb2JewYCIiApsMu5JfI5Ak...",
    "notification": {
        "body": "Cool offers. Get them before expiring!",
        "title": "Flat 80% discount",
        "icon": "appicon"
    }
}

您的后端开发人员必须像这样发送 json:

{ 
"data": {
"score": "5x1",
"time": "15:10"
},
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

如果您使用< code >仅数据消息,在这两种情况下都会调用onMessageReceived()方法,即使您的应用程序处于< code >前台或< code >后台。然后,只需使用< code >键值获得响应。

 @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
  ...
   Map<String, String> data = remoteMessage.getData();

  //you can get your text message here.
  String text= data.get("text");
 ...
}
 类似资料:
  • 如何使用注册为频道管理员的机器人访问电报频道消息? 我试图从电报频道获取所有信息,并在ASP.NET网页上显示出来(c#) 当新消息直接发送到机器人时,我能够获得更新: 但它不适用于该频道。

  • 问题内容: 我使用以下代码从我的应用程序发送普通的whatsapp文本消息: 如何从我的应用程序执行whatsapp视频通话? 问题答案: 假设您已经获取了联系电话。 步骤1: 您需要从联系人中获取相应的whatsapp联系人ID。 步骤2: 您使用whatsapp视频意图拨打电话。 注意: 显然,查询代码应该在后台线程上。以上只是如何触发whatsapp视频通话的工作总结。 哦,别忘了添加阅读联

  • 在我们的小型初创公司中,我们使用GitLab进行开发,使用Telegram进行开发人员和PO之间的内部沟通。由于PO希望立即看到进度,因此我们设置了GitLab Pipeline,以便在每次提交后将预览版部署在Web服务器上。现在我们想扩展管道。这样在部署后通过Telegram组发送通知。 所以问题是,这可能吗?如果可能,怎么可能? 编辑:因为我已经实现了,这不是一个真正的问题。我想把答案贴在这里

  • 问题内容: 我面临一种奇怪的情况,即我编写的​​批处理文件报告了错误的退出状态。这是重现该问题的最小示例: 如果我运行此脚本(使用Python,但是当以其他方式启动时实际上也会出现问题),这是我得到的: 注意如何报告,即使应该如此。 现在很奇怪的是,如果我删除了inner子句(这没关系,因为之后的所有内容都不应该执行),然后尝试启动它: 我再次启动它: 现在正确地报告为。 我不知道是什么原因造成的

  • 我拥有的现有代码: 我想丰富现有代码,并在收到一些不允许的数据时引发异常,我做了以下更改: 但由于以下原因,我的实现甚至不可编译: 您能为我的特定场景提供建议吗?

  • 我已经设置了一个电报网络钩子使用node.js/express: 当我获取时,我可以收到我的机器人控制台: 现在我想从机器人程序接收数据,这样当用户访问时https://telegram.me/mybot?start=xyz并按bot,bot应该在的帖子中收到 以下是我收到邮件的路线: 但当用户访问时,我发现机器人中什么也没有发生https://telegram.me/mybot?start=xy