我收到消息,但它们不会显示在状态栏上(我的应用程序在后台100%)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我收到消息,但它们不会显示在状态栏上(我的应用程序在后台100%)相关的知识,希望对你有一定的参考价值。

我将项目从GCM迁移到FCM。已经在服务器端进行了更改并更新了移动应用程序中的所有依赖项。但是当我收到消息时,它不会出现在状态栏中,我无法理解为什么。

    <service
        android:name="com.SkinPhd.Olympus.fcm.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

MyFirebaseMessagingService扩展了FirebaseMessagingService:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    Log.d(TAG, "From: " + remoteMessage.getFrom());

    // Check if message contains a data payload.
    if (remoteMessage.getData().size() > 0) {
        Log.d(TAG, "Message data payload: " + remoteMessage.getData());
    }

    // Check if message contains a notification payload.
    if (remoteMessage.getNotification() != null) {
        Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
    } else {
        Log.d(TAG, "Message getNotification == null");
    }
}

logcat的:

MyFirebaseMsgService:来自:413140669797

MyFirebaseMsgService:消息数据有效负载:{push_id = 962,type_item = 0,message = Hello。这是一个测试推送。,item_id = -1}

MyFirebaseMsgService:消息getNotification == null

为什么remoteMessage.getNotification()== null?我究竟做错了什么?

答案

找到了一个解决方案:事实证明,转换到新平台并不是一切都那么简单,向后兼容性不如我们的“好公司”写的那样好。有必要特别改变服务器端逻辑的文档编写方式,而不是像迁移到FCM的文档那么简单。

以上是关于我收到消息,但它们不会显示在状态栏上(我的应用程序在后台100%)的主要内容,如果未能解决你的问题,请参考以下文章

IOS - Firebase 动态链接打开应用但在状态栏上显示文本按钮

IOS 中的 GCM 通知未显示在状态栏上

C#消息框最小化问题

尽管它显示在任务栏上,但 Android Studio 模拟器无法正常工作

iOS 静默推送通知失败并显示消息

如何清除状态栏上的推送通知警报 - android