Android 接收推送通知时获取数据-ionic3

Android 接收推送通知时获取数据-ionic3,android,cordova,firebase,push-notification,ionic3,Android,Cordova,Firebase,Push Notification,Ionic3,我正在开发一个针对Android和ios的ionic3应用程序,我正在使用推送通知。我想在收到推送通知时从服务器获取一些数据。我不能将数据作为推送通知的一部分发送,因为Firebase将推送消息的最大大小限制为(4Kb)。因此,只有当用户点击推送通知时,我才从服务器获取数据,推送通知会导致用户等待数据从服务器获取 有没有办法在推送通知到达时获取数据(应用程序不在前台)?您使用承诺作为一种“回调句柄”-在服务中执行异步操作,返回承诺,当异步工作完成时,承诺的承诺就会触发函数 angular.mod

我正在开发一个针对Android和ios的ionic3应用程序,我正在使用推送通知。我想在收到推送通知时从服务器获取一些数据。我不能将数据作为推送通知的一部分发送,因为Firebase将推送消息的最大大小限制为(4Kb)。因此,只有当用户点击推送通知时,我才从服务器获取数据,推送通知会导致用户等待数据从服务器获取


有没有办法在推送通知到达时获取数据(应用程序不在前台)?

您使用承诺作为一种“回调句柄”-在服务中执行异步操作,返回承诺,当异步工作完成时,承诺的承诺就会触发函数

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);
  }
}
});

您可以引用此

中的代码。您使用承诺作为一种“回调句柄”-在服务中执行异步操作,返回承诺,当异步工作完成时,该承诺的响应将触发函数

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);
  }
}
});
您可以参考此

中的代码,我正在使用“Phonegap Plugin Push”插件与Firebase进行推送通知。如果推送负载仅包含“数据”对象,则该插件在推送通知到达时调用('notification')处理程序。因此,我并没有将“通知”对象添加到负载中,而是将“数据”对象作为负载的一部分从服务器发送。现在,只要推送通知到达设备,我就可以在我的on('notification')处理程序中从服务器获取数据

参考:

我正在使用“Phonegap插件推送”插件与Firebase进行推送通知。如果推送负载仅包含“数据”对象,则该插件在推送通知到达时调用('notification')处理程序。因此,我并没有将“通知”对象添加到负载中,而是将“数据”对象作为负载的一部分从服务器发送。现在,只要推送通知到达设备,我就可以在我的on('notification')处理程序中从服务器获取数据


参考:

是的,当您收到推送消息并从服务器获取数据时,以及当您从服务器获取数据成功创建通知时,您可以启动后台服务。谢谢@sasuke。是否有任何方法可以使用ionic创建后台服务?阅读有关Promise的概念请告诉我promises在这里有什么帮助?是的,当您收到推送消息并从服务器获取数据时,以及当您从服务器获取数据成功创建通知时,您可以启动后台服务。谢谢@sasuke。是否有任何方法可以使用ionic创建后台服务?请阅读有关Promise的概念请告诉我承诺在这里有何帮助?这个问题既不是关于异步任务,也不是关于承诺。如何创建即使在应用程序关闭时也能运行的后台服务?这个问题既不是关于异步任务,也不是关于承诺。如何创建即使在应用程序关闭时也能运行的后台服务?