1

Я использую Ionic push-уведомления для Android и iOS.Обработчики событий Ionic Push Notification. Что использовать?

На Android они отлично работают при запуске вручную, а также программно через API. На iOS кажется, что они поступают вручную только через Ionic Cloud. Пока я не уверен, что вызывает это, однако я заметил то, что я не уверен в документах.

В Ionic Docs для Push-уведомлений, похоже, есть два разных обработчика событий, когда в приложение входят уведомления. Один будучи один момент я использую:

$scope.$on('cloud:push:notification', function(event, data) { 
    var msg = data.message; 
    alert(msg.title + ': ' + msg.text); 
}); 

, а другой

push.on('notification', function(data) { 
    // do something with the push data 
    // then call finish to let the OS know we are done 
    push.finish(function() { 
     console.log("processing of push data is finished"); 
    }, function() { 
     console.log("something went wrong with push.finish for ID = " + data.additionalData.notId) 
    }, data.additionalData.notId); 
}); 

Прежние нуждается в $ionicPush инъекции во время последнего инициализируется следующим образом:

var push = PushNotification.init({ 
     "android": { 
      "senderID": "XXXXXXXXXXX", 
      "sound": "true", 
      "vibrate": "true" 
     }, 
     "ios": { 
      "alert": "true", 
      "badge": "true", 
      "sound": "true" 
     }, 
     "windows": {} 
}) 

Может кто-нибудь скажите, пожалуйста, какой обработчик событий я должен использовать? Я думаю, что это может быть связано с тем, что я не получаю программные нажатия на iOS

ПРИМЕЧАНИЕ. Да, я разрешил push-уведомления и удаленные уведомления на Xcode. Помните, что я получаю ручные нажатия на iOS, а не программные.

+0

, что делает руководство выталкивает КСН означает? – vbharath

+0

Отправлено с использованием интерфейса Ionic Cloud на приборной панели – jablesauce

+0

oh programatic отправляет через APNS? – vbharath

ответ

0

Оказалось, что документация не соответствует действительности. Следующее решение, похоже, работает.

$rootScope.$on('cloud:push:notification', function(event, data) { 
    var msg = data.message; 
    console.log("data = "+JSON.stringify(data)); 

    if (data.raw.additionalData["content-available"] == 1) { 
     console.log("Found silent push notification, for platform "+ionic.Platform.platform()); 
    // handle the notification and then... 
     $ionicPush.plugin.finish(function(result) { 
      console.log("Finish successful with result " + result); 
      }, function(error) { 
      console.log("Finish unsuccessful with result "+error); 
      }); 
    }; 
    }); 

PS: Это было на ионных форумах, вы можете найти ссылку на оригинальный пост here