Уведомление получено, но в панели уведомлений не отображается значок

Я отправляю Уведомление с моего сервера (Django), используя django-push-notifications через FCM:

from push_notifications.models import GCMDevice
agents_user_ids = [agent.user.id for agent in task.agents.all()]
devices = GCMDevice.objects.filter(user_id__in=agents_user_ids)
devices.send_message("You have a new task", title="New Task")

Я могу получать данные в мобильном приложении (ionic 1.3.3, angularjs 1.5.3), используя cordova-plugin-fcm:

FCMPlugin.onNotification((data) => {
        alert(JSON.stringify(data));
    }, function(msg){
        console.log("FCM Notification callback registered.");
    }, function(err){
        console.log("FCM Notification callback registration error: " + err);
    });

Проблема в том, что в панели нет уведомлений, нет вибрации, нет звука... Я уже модифицировал devices.send_message варианты, использующие дополнительный аргумент, но ничего не происходит.

Следуя документации FCM, я изменил манифест, добавив:

<application>
    ...
    <service android:name="com.gae.scaffolder.plugin.MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service android:name="com.gae.scaffolder.plugin.MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_stat_ic_notification" />
    <meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/colorAccent" />
</application>

Это проблема с настройкой приложения? с тем, как я отправляю уведомление с сервера? или просто плагины, которые я использую, ничего не отображают в панели уведомлений?

... Должен ли я создать уведомление вручную, используя полученные данные?

1 ответ

Может быть две причины

  1. Ваше приложение находится в фоновом режиме при получении? Проверьте https://firebase.google.com/docs/cloud-messaging/android/receive

  2. Кроме того, на основе вышеуказанной ссылки ваше устройство автоматически отображает ваше сообщение в виде уведомления только в двух ситуациях. Сообщение может быть доставлено в ваше приложение, после чего вашему приложению потребуется отправить уведомление на устройство. Проверьте https://developer.android.com/training/notify-user/build-notification.html

Другие вопросы по тегам