FCM 远程通知,提供的图标未在前台使用

FCM remote notification, provided icon not used in foreground

我正在尝试根据 android 端的 react-native 项目中的有效负载更改使用的通知图标。这是有效载荷:

{"GCM": "{\"notification\": { \"text\": \"text\", \"title\": \"Title\", \"icon\":\"ic_stat_logo\", \"color\":\"#FA8072\"}}"}

然而,我得到的是,当应用程序在后台或关闭时,显示的通知图标是我提供的图标,但在前台,它显示的是应用程序图标。

我试图查看文档,但查找了很长时间没有找到任何结果。这是 android 限制吗?有什么方法可以绕过它?

还有清单:

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true"
    android:requestLegacyExternalStorage="true"
    android:largeHeap="true">

    <meta-data
            android:name="com.google.firebase.messaging.default_notification_channel_id"
            android:value="@string/channel_id" />
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/ic_notification" />


    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_name"
                android:value="@string/channel_name"/>
    <meta-data android:name="com.dieam.reactnativepushnotification.notification_channel_description" android:value="@string/channel_description"/>

    <!-- Change the value to true to enable pop-up for in foreground (remote-only, for local use ignoreInForeground) -->
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
        android:value="true"/>
    <!-- Change the resource name to your App's accent color - or any other color you want -->
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
        android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color -->

    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

    <service
        android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <activity
        android:name=".MainActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:fitsSystemWindows="true"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustPan"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

问题不是来自配置,而是来自库 react-native-push-notification,它没有考虑 smallIcon 属性。