Ионическое приложение не получает push-уведомления, когда в фоновом режиме - PullRequest
0 голосов
/ 05 октября 2019

быстрый вопрос здесь.

Я разработал приложение ionic / cordova, которое использует Firebase для получения уведомлений. Это сообщение, которое я отправляю в другом приложении:

        JsonObject jNotification = new JsonObject();
        jNotification.addProperty("title", title);
        jNotification.addProperty("body", body);

        JsonObject jMessage = new JsonObject();
        jMessage.add("notification", jNotification);
        jMessage.addProperty("topic", topic);

        JsonObject jData = new JsonObject();
        jData.addProperty("title", title);
        jData.addProperty("body", body);
        jData.addProperty("sound", "default");
        jData.addProperty("click_action", "FCM_PLUGIN_ACTIVITY");
        jData.addProperty("icon", "fcm_push_icon");
        jData.addProperty("priority", "high");
        jMessage.add("data", jData);

        JsonObject jFcm = new JsonObject();
        jFcm.add("message", jMessage);

Это отправляется на URL

https://fcm.googleapis.com/v1/projects/PROJECT/messages:send

После этого я получаюМой токен доступа через service-account.json не вызывает проблем.

Мобильное приложение получает push-уведомление с помощью:

      if (this.platform.is('cordova')) {

        this.fcm.subscribeToTopic('TOPIC');


            this.fcm.getToken().then(token => {
              // save this server-side and use it to push notifications to this device
              console.log(`Obtained token: ${token}`);
            });

            this.fcm.onTokenRefresh().subscribe(token => {
              // save this server-side and use it to push notifications to this device
              console.log(`Obtained refreshed token: ${token}`);
            });

            this.fcm.onNotification().subscribe(data => {
              if (data.wasTapped) {
                console.log(Notification received`);
          } else {
            this.dialogs.alert(data.body, data.title)
              .then(() => console.log('Dialog dismissed'))
              .catch(e => console.log('Error displaying dialog', e));

          }
        })
      }

В приложении push-уведомление приходит без проблем черездругое приложение или даже с помощью консоли Firebase. Однако, когда за пределами приложения, push-уведомление не появляется в системном трее.

...