1

我正在为我正在开发的 Android 应用程序使用Native Push Plugin 。我为我的通知配置了一个图标和一个图标颜色,如下所示:

let push = Push.init({
  android: {
    icon: "ic_notif",
    iconColor: "#f94915",
    forceShow: true, ...

如果我通过 Firebase 控制台(Target = User Segment -> App -> My App)发送通知并且我在前台(应用程序可见),我的通知图标将正确显示在通知区域(图标颜色以及在通知抽屉中)。但是,如果我的应用程序在后台(或根本没有启动)并且我发送了一条消息,我会得到一个白色方块(并且通知抽屉中的图标颜色是默认的灰色)。

在此处输入图像描述

通过查看源代码,在 GCMIntentService.java 中,我发现 onMessageReceived 方法处理传入的消息。当我在前台时,会触发以下条件:

else if (forceShow && PushPlugin.isInForeground()) {
            Log.d(LOG_TAG, "foreground force");
            extras.putBoolean(FOREGROUND, true);
            extras.putBoolean(COLDSTART, false);

            showNotificationIfPossible(applicationContext, extras);
        }

showNotificationIfPossible方法负责创建通知(图标、图标颜色、振动、声音等)。这里的问题是,当应用程序在后台时,代码似乎没有被执行(我仍然收到消息),特别是下面的代码,这就是我认为这里的问题:

// if we are not in the foreground always send notification if the data has at least a message or title
        else {
            Log.d(LOG_TAG, "background"); //this is not being logged at all
        ...

有谁知道这里发生了什么?我想我需要更彻底地检查源代码才能弄清楚。

4

1 回答 1

2

manifiest.json 文件的语法已经更新,并且出现了一些新的东西,请检查下面的示例是否与您的情况相同?

{ "name": "Ionic", "short_name": "Ionic", "start_url": "index.html", "display": "standalone", "icons": [{ "src": "assets/imgs/logo.png", "sizes": "512x512", "type": "image/png" }], "background_color": "#4e8ef7", "theme_color": "#4e8ef7" }

从此文件中,您可以进行所需的任何 ui 更改。

于 2017-05-07T17:19:17.293 回答