web-dev-qa-db-fra.com

Comment puis-je tester Apple Push Notification Service sans iPhone?

Est-il possible de tester le Apple Push Notification Services sans application iPhone? (Créer un émulateur sur Windows?)

Si ce n'est pas le cas, comment pourrais-je tester cela? Existe-t-il un exemple d'application gratuit compilé pour ce faire?

J'ai créé le fournisseur de serveur, mais j'ai besoin de tester la fonctionnalité.

64
Zanoni

(Cette réponse peut être obsolète après 2013)

Désolé de le dire, mais vous devrez trouver du matériel pour tester cette fonctionnalité.

Les notifications push ne sont pas disponibles dans le simulateur. Ils nécessitent un profil d'approvisionnement d'iTunes Connect et doivent donc être installés sur un appareil. Cela signifie également que vous devrez probablement être accepté dans le programme pour développeurs Apple iPhone) et payer vos 99 $.

Du côté positif, avec la mise à jour iPhone OS 3.0, vous pouvez tester cette fonctionnalité sur n'importe quel appareil, y compris les iPhones de première génération.

72
casademora

Vous ne pouvez pas tester de vraies notifications Push. Cependant, vous pouvez tester la réponse de votre application à une notification Push simulée en en créant une par programmation et en déclenchant manuellement le _ de votre AppDelegate - application:application didReceiveRemoteNotification:notification méthode.

Pour déclencher cela à partir d'une classe différente (comme un UIViewController):

[[[UIApplication sharedApplication] delegate]
                    application:[UIApplication sharedApplication]
   didReceiveRemoteNotification:testNotification];

La testNotification doit avoir le même format qu'une notification réelle, à savoir un NSDictionary qui contient des objets de liste de propriétés plus NSNull.

Voici un exemple de la façon de fournir le testNotification ci-dessus:

NSMutableDictionary *notification = [[NSMutableDictionary alloc] init];
[notification setValue:@"Test" forKey:@"alert"];
[notification setValue:@"default" forKey:@"sound"];

NSMutableDictionary *testNotification = [[NSMutableDictionary alloc] init];
[testNotification setValue:notification forKey:@"aps"];

Cela devrait créer une notification NSDictionary raisonnable pour travailler avec.

54
Jamon Holmgren

De nos jours, nous pouvons tester les notifications Push avec cette bibliothèque .

Il est assez facile d'envoyer Push via un terminal:

echo -n '{"message":"message"}' | nc -4u -w1 localhost 9930

echo -n '{"aps":{"alert" : "message","badge" : 99,"sound" : "default"}, "myField" : 54758}' | nc -4u -w1 localhost 9930
30
kaspartus

Le simulateur ne fait pas de notifications push.

Et pour pousser à partir d'un serveur, vous devez avoir des appareils vers lesquels pousser, ainsi que votre application sur cet appareil.

Le jeton contient l'identité de l'application ainsi que l'ID de l'appareil.

6
Johnny

tu dois utiliser

NSString *notificationString = @"{\"aps\":{\"alert\":\"Test alert\",\"sound\":\"default\"}}";

NSData *notificationData = [notificationString dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *testNotification = [NSJSONSerialization JSONObjectWithData:notificationData options:0 error:&error];

[[[UIApplication sharedApplication] delegate] application:[UIApplication sharedApplication] didReceiveRemoteNotification:testNotification  fetchCompletionHandler:nil];
4
user2894794

Oui, vous pouvez vérifier la notification Push sur le simulateur, mais vous devez utiliser une bibliothèque dans votre application Named SimulatorRemoteNotifications . Grâce à quoi, en utilisant seulement 4-5 étapes, vous pouvez tester la notification Push sur Simulator.

Ils fournissent également des POD

pod 'SimulatorRemoteNotifications', '~> 0.0.3'
1
Sagar Shirbhate