我正在开发针对Android和ios的ionic3应用,我正在使用推送通知。我想在接收推送通知时从服务器获取一些数据。由于Firebase限制,我无法将数据作为推送通知的一部分发送推送消息的最大大小为(4Kb)。因此,我只有在用户点击推送通知时才从服务器获取数据,导致用户等待直到从服务器获取数据。
是否有任何方法可以在推送通知到达时获取数据(应用程序不在前台)?
答案 0 :(得分:0)
你使用promises作为一种'回调句柄' - 在服务中做异步,返回一个promise,当异步工作完成后,promise就会触发函数。
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);
}
}
});
您可以参考此Link
中的代码答案 1 :(得分:0)
我使用“Phonegap-Plugin-Push”插件进行Firebase推送通知。如果推送有效负载仅包含“数据”对象,则此插件会在推送通知到达时调用('notification')处理程序。因此,我不是将“通知”对象添加到有效负载,而是仅发送“数据”对象作为来自服务器的有效负载的一部分。现在,只要推送通知到达设备,我就可以在我的on('notification')处理程序中从服务器获取数据。