在应用未运行时发出加载资源

时间:2016-12-02 11:21:02

标签: android firebase android-notifications firebase-cloud-messaging firebase-notifications

我发现有关Android通知上的小图标的类似问题,但Google未能给出任何关于以下问题的提示:

简单地说,我的通知在应用程序未打开时不会显示颜色和图标,但是当应用程序在屏幕上可见时,它会完美地运行。

当通知出现时,应用程序在后台运行:

App is running in background when notification appears

当出现通知时,屏幕上会显示应用程序:

App is visible on the screen when notification appears

对我而言,服务似乎无法使用当前上下文加载某些资源。目前我正在使用我自己的python服务器调用firebase REST Api来发送通知。

虽然Title和Text-Body是通过通知自己的有效负载直接发送的,但应用程序会选择图标和颜色。

这是在服务中构建通知的方式。

final Context context = this.getApplicationContext();

final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                .setDefaults(Notification.DEFAULT_SOUND)
                .setContentTitle(notification.getTitle())
                .setContentText(notification.getBody())
                .setColor(ContextCompat.getColor(context, R.color.notification))
                .setSmallIcon(R.drawable.ic_local_shipping_white_24dp);

这是最终显示通知的片段:

final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
final boolean notificationsEnabled = mNotificationManager.areNotificationsEnabled();
if (notificationsEnabled) {
    mNotificationManager.notify(notifyID, mBuilder.build());
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以尝试:

1。更新至9.8.0版并检查THIS解决方案

<强> 2 发送推送通知时设置图标和颜色。

示例JSON:

{
     "notification" : {
      "body" : "My amazing body!",
      "title" : "My amazing title",
      "icon" : "ic_logo",
      "sound" : "default",
      "color" : "#D63A49"
    },
    "registration_ids": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
}

ic_logo 是资源名称

3. 发送data通知。这样,即使应用程序位于backgrdound

,也会调用onMessageReceived(RemoteMessage message)方法

示例JSON:

{
    "data": {
        "my_custom_key" : "my_custom_value",
        "whatever" : "YES",
        "other_key" : true
     },
    "to": "XXXXXXX"
}