android – 当app在后台时,不会调用Firebase onMessageReceived

android – 当app在后台时,不会调用Firebase onMessageReceived,第1张

概述我在 Android应用中使用Firebase作为我们的消息服务.我对Firebase进行了相当多的研究,我理解 whether the app if running in the foreground or now will change the type of data received in the onMessageReceived method. 我想要完成的是解析来自Remotemes 我在 Android应用中使用Firebase作为我们的消息服务.我对Firebase进行了相当多的研究,我理解 whether the app if running in the foreground or now will change the type of data received in the onMessageReceived method.

我想要完成的是解析来自Remotemessage的传入数据,并根据自定义标记执行与它不同的 *** 作. IE,如果数据映射包含一个名为“My_Custom_Tag”的字段,我想完全覆盖d出的标准firebase消息并编写一个自定义消息.

问题是,当应用程序在后台运行时,我放入onMessageReceived的任何代码都不会被触发.当应用程序在前台运行时,它可以正常工作,但如果应用程序在后台,则无法检测/接收任何内容.

以下是一些示例代码:

@OverrIDepublic voID onMessageReceived(RemoteMessage remoteMessage) {    super.onMessageReceived(remoteMessage);    Map<String,String> aMap = remoteMessage.getData();    //Custom object here for easIEr parsing    PushNotificationsPojo pojo = this.convertResponsetoPojo(aMap);    if(pojo == null){        passtoFirebase(remoteMessage);        return;    }    if(pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_CHAT_MESSAGE)) {        createCustomNotification1(pojo);    } else if (pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_SOME_OTHER_MESSAGE)){        createCustomNotification2(pojo);    } else if (pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_STUFF_AND_WHATNOT)) {        createCustomNotification3(pojo);    } else {        passtoFirebase(remoteMessage);    }}

我的问题是,如何编辑MyFirebaseMessagingService以便我可以检查传入的数据,确定标记信息,并决定将其传递给firebase,以便它可以使用标准处理或不将其传递给firebase并编写我的我的应用程序在后台运行时,我自己的自定义显示通知?

谢谢大家!

PS,Firebase-Dungeon-Master Frank van Puffelen有什么机会有想法吗?

解决方法 从FCM消息中删除通知有效内容,以便将数据有效负载传递给onMessageReceived方法.

仔细阅读this和this.

当您的应用程序位于后台时,仅当没有通知有效负载时,才会将数据有效负载传递到onMessageReceived方法. (标出单词)

如果两个有效负载都存在,则系统自动处理通知部分(系统托盘),并且您的应用程序在启动器活动的意图的额外内容中获取数据有效负载(在用户点击通知之后).

为了能够成功地为AndroID和iOS两个平台提供服务,您可能必须根据客户端的 *** 作系统发送不同的FCM消息.

总结

以上是内存溢出为你收集整理的android – 当app在后台时,不会调用Firebase onMessageReceived全部内容,希望文章能够帮你解决android – 当app在后台时,不会调用Firebase onMessageReceived所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存