Уведомление получено, но в панели уведомлений не отображается значок
Я отправляю Уведомление с моего сервера (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 ответ
Может быть две причины
Ваше приложение находится в фоновом режиме при получении? Проверьте https://firebase.google.com/docs/cloud-messaging/android/receive
Кроме того, на основе вышеуказанной ссылки ваше устройство автоматически отображает ваше сообщение в виде уведомления только в двух ситуациях. Сообщение может быть доставлено в ваше приложение, после чего вашему приложению потребуется отправить уведомление на устройство. Проверьте https://developer.android.com/training/notify-user/build-notification.html