1

Ich verwende ionische Push-Benachrichtigungen für Android und iOS.Ionic Push Notification-Ereignishandler. Was zu verwenden?

Auf Android funktionieren sie perfekt sowohl manuell als auch programmatisch über die API. Bei iOS scheinen sie nur manuell über Ionic Cloud zu kommen. Bisher bin ich mir nicht sicher, was das verursacht, aber ich habe etwas bemerkt, über das ich mich bei den Dokumenten nicht sicher bin.

Auf der Ionic Docs for Push-Benachrichtigungen scheint es zwei verschiedene Ereignishandler für Benachrichtigungen in die App kommen. Eines ist die, die ich bin derzeit mit:

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

und die andere

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

Die ehemaligen Bedürfnisse der $ionicPush Injektion, während die letztere wie folgt initialisiert:

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

Kann jemand Bitte sagen Sie mir, welchen Event-Handler ich verwenden soll? Ich denke, dass dies möglicherweise damit zu tun hat, dass ich keine programmatischen Pushs auf iOS empfange

HINWEIS: Ja, ich habe Push-Benachrichtigungen und Remote-Benachrichtigungen auf Xcode aktiviert. Denken Sie daran, ich erhalte manuelle Pushs auf iOS, nur nicht die programmatischen.

+0

finden, was Handbuch bedeutet das drückt auf ios? – vbharath

+0

Gesendet mit der Ionic Cloud-Schnittstelle auf dem Armaturenbrett – jablesauce

+0

oh Programmatic sendet über APNS? – vbharath

Antwort

0

Stellt sich heraus, seine Dokumentationsfehler. Folgende Lösung scheint zu funktionieren.

$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: Diese ionisches Forum war, können Sie den Link zum Original-Beitrag here