Получить данные о получении push-уведомления - ionic3

Я разрабатываю приложение ionic3, ориентированное на Android и ios, и использую push-уведомления. Я хочу получить некоторые данные с сервера при получении push-уведомления. Я не могу отправить свои данные как часть Push-уведомления, поскольку Firebase ограничивает максимальный размер push-уведомления. сообщение должно быть (4 КБ). Следовательно, я извлекаю данные с сервера только тогда, когда пользователь нажимает на push-уведомление, что заставляет пользователя ждать, пока данные не будут получены с сервера.

Есть ли способ получить данные о получении push-уведомления (приложение не на переднем плане)?


person Sudharsan    schedule 29.08.2017    source источник
comment
Да, вы можете запускать фоновую службу, когда получаете push-сообщение и извлекаете данные с сервера, а когда вы извлекаете данные с сервера, успешно создаете там уведомление.   -  person baldraider    schedule 29.08.2017
comment
Спасибо @саске. Есть ли способ создать фоновую службу с помощью ionic?   -  person Sudharsan    schedule 29.08.2017
comment
Прочтите понятия о обещаниях   -  person baldraider    schedule 29.08.2017
comment
Пожалуйста, дайте мне знать, как обещания помогут здесь?   -  person Sudharsan    schedule 29.08.2017


Ответы (2)


вы используете обещания как своего рода «дескриптор обратного вызова» — делаете что-то асинхронное в службе, возвращаете обещание, и когда асинхронная работа выполняется, обещание затем запускает функцию.

angular.module('atTheMoviesApp', [])
  .controller('GetMoviesCtrl', 
       function($log, $scope, movieService) {
           $scope.getMovieListing = function(movie) {
           var promise = 
               movieService.getMovie('avengers');
           promise.then(
              function(payload) { 
              $scope.listingData = payload.data;
        },
        function(errorPayload) {
            $log.error('failure loading movie', errorPayload);
        });
     };
})
.factory('movieService', function($http) {
return {
  getMovie: function(id) {
     return $http.get('/api/v1/movies/' + id);
  }
}
});

Вы можете взять ссылку на код из этого Ссылка

person baldraider    schedule 29.08.2017
comment
Этот вопрос не касается ни асинхронной задачи, ни обещаний. Как создать фоновую службу, которая работает, даже когда приложение закрыто? - person Sudharsan; 29.08.2017

Я использую плагин Phonegap-Plugin-Push для push-уведомлений с Firebase. Этот плагин вызывает обработчик on('notification') при получении push-уведомления, если push-полезная нагрузка содержит только объект «data». Следовательно, вместо добавления объекта «уведомление» в полезную нагрузку я отправляю только объект «данные» как часть полезной нагрузки с сервера. Теперь я могу получать данные с сервера в своем обработчике on('notification'), как только push-уведомление поступает на устройство.

Ссылка: PhonegapPluginPushDocs

person Sudharsan    schedule 05.09.2017