2017-08-29 38 views
0

我正在開發一個針對Android和ios的ionic3應用,我使用的是推送通知。我想在接收推送通知時從服務器獲取一些數據。我無法將我的數據作爲作爲Firebase的推送通知的一部分將推送消息的最大大小限制爲(4Kb)。因此,僅當用戶點擊推送通知時導致用戶等待數據從服務器獲取時,我才從服務器獲取數據。獲取推送通知接收數據 - ionic3

推送通知到達時是否有任何方式獲取數據(應用程序不在前臺)?

+0

呀,你可以當你從服務器那裏時,從服務器獲取你的數據成功創建通知有收到推送消息,並獲取數據啓動後臺服務。 – sasuke

+0

謝謝@sasuke。有沒有什麼辦法使用離子創建一個後臺服務? – Sudharsan

+0

閱讀關於承諾的概念 – sasuke

回答

0

您使用promise作爲一種「回調句柄」 - 在服務中執行異步操作,返回一個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

+0

這個問題既不是關於異步任務,也不是關於承諾。如何創建即使關閉應用程序也能運行的後臺服務? – Sudharsan

0

代碼的一個參考,我使用「的PhoneGap - 插件 - 推」插件與火力地堡推送通知。如果推送有效載荷僅包含「數據」對象,則此插件會在推送通知到達時調用('通知')處理程序。因此,我並沒有將「通知」對象添加到有效內容,而是僅將「數據」對象作爲服務器有效內容的一部分發送。現在,只要推送通知到達設備,我就可以在我的('通知')處理程序中從服務器獲取數據。

參考:PhonegapPluginPushDocs