Appcelerator-Titanium — не получает push-сообщения с данными fcm, когда приложение находится в фоновом режиме / закрыто

#android #firebase-cloud-messaging #titanium

#Android #firebase-облако-обмен сообщениями #titanium

Вопрос:

Я переношу существующую функциональность GCM в FCM в приложении Appcelerator-Titanium, которое использует alloy framework. Я использую следующий сторонний модуль для FCM —

https://github.com/hansemannn/titanium-firebase-cloud-messaging/

Приложение ранее использовало следующий модуль для GCM —

https://github.com/saurabh-vijay004/gcm.js-master

Приложение не получает push-сообщения с данными в фоновом режиме / закрыто, но отлично работает на переднем плане.

Ниже приведен пример кода в моем index.js —

 var core = require('firebase.core');
    core.configure({
        file : "google-services.json"
    });
    var fcm = require('firebase.cloudmessaging');
    var androidNotification = require('/androidNotification');

    registerAndroid();
    function registerAndroid() {
        // Called when the Firebase token is registered or refreshed.
        fcm.addEventListener('didRefreshRegistrationToken', function(e) {
            Ti.API.info('Token', e.fcmToken);
            Ti.App.Properties.setString('push_token', e.fcmToken);
        });
        // Called when direct messages arrive. Note that these are different from push notifications.
        fcm.addEventListener('didReceiveMessage', function(e) {
            Ti.API.info('Message', JSON.stringify(e.message.data.message));
            androidNotification.sendNotification(e.message.data.message);
        });

        if (OS_ANDROID) {

            var channel = Ti.Android.NotificationManager.createNotificationChannel({
                id : 'nube_channel',
                name : 'NUBE CHANNEL',
                importance : Ti.Android.IMPORTANCE_DEFAULT,
                enableLights : true,
                enableVibration : true,
                showBadge : true
            });
            fcm.notificationChannel = channel;
        }

        // Register the device with the FCM service.
        fcm.registerForPushNotifications();
        // Check if token is already available.
        if (fcm.fcmToken) {
            Ti.API.info('FCM-Token', fcm.fcmToken);
            Ti.App.Properties.setString('push_token', fcm.fcmToken);
        } else {
            Ti.API.info('Token is empty. Waiting for the token callback ...');
        }
    }

  

androidNotification.js файл содержит код для отображения push-уведомлений в панели уведомлений.

Комментарии:

1. Я использую FCM и получаю уведомление в трее, когда приложение работает в фоновом режиме или отключено. Вы имеете в виду, что уведомление отображается в трее, но вы не получаете дополнительную полезную нагрузку, которую отправляете с сервера? ИЛИ уведомление вообще не отображается?