2009-07-03 35 views
48

¿Es posible probar Apple Push Notification Services sin una aplicación de iPhone? (¿Crear un emulador en Windows?)¿Cómo puedo probar el servicio de notificaciones push de Apple sin un iPhone?

Si no es así, ¿cómo podría probar eso? ¿Hay una aplicación de muestra gratuita compilada para hacer eso?

Creé el proveedor de Servidor, pero necesito probar la funcionalidad.

+0

Es hora de actualizar mejor respuesta. La biblioteca de mi respuesta es muy útil, ¡gracias por su ayuda! – kaspartus

Respuesta

64

Lo siento, pero debe buscar hardware para probar esta funcionalidad.

Las notificaciones de inserción no están disponibles en el simulador. Requieren un perfil de aprovisionamiento de iTunes Connect y, por lo tanto, deben instalarse en un dispositivo. Eso también significa que probablemente deba ser aceptado en el programa de desarrollo de iPhone de Apple y pagarle $ 99.

Por el lado positivo, con la actualización de iPhone OS 3.0, puede probar esta funcionalidad en cualquier dispositivo, incluidos los iPhones de primera generación.

+2

me encontré con el mismo problema, tu respuesta no es clara hablando de la segunda parte de la pregunta: 'Si no es así, ¿cómo podría probar eso? ¿Hay una aplicación de muestra gratuita compilada para hacer eso? Creé el proveedor del servidor, pero necesito probar la funcionalidad. – JackLeo

+16

Está claro. Necesita un dispositivo para probar. –

5

El simulador no envía notificaciones automáticas.

Y para enviar contenido desde un servidor, debe tener dispositivos para enviar y su aplicación en ese dispositivo.

El token contiene la identidad de la aplicación, así como la ID del dispositivo.

43

No puede probar notificaciones push reales. Sin embargo,, puede probar la respuesta de de su aplicación a una notificación de inserción simulada creando uno programáticamente y manualmente activando el método - application:application didReceiveRemoteNotification:notification de su AppDelegate.

Para activar este de una clase diferente (como un UIViewController):

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

El testNotification debe tener el mismo formato que una notificación real, a saber, un NSDictionary que contiene objetos de la lista propiedad más NSNull.

He aquí un ejemplo de cómo proporcionar el testNotification arriba:

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"]; 

Esto debería crear un NSDictionary notificación razonable para trabajar con ellos.

+0

¿hay alguna implementación de muestra de esto en algún lado? –

+0

No tengo uno (mi implementación de prueba toma una ruta diferente, aunque debería hacer lo que sugerí arriba). Escenario clásico de "hacer lo que digo, no lo que hago", supongo. –

+0

Se agregó una muestra. –

26

Hoy en día, podemos probar notificaciones push con this library.

Es bastante fácil de enviar empuje a través del 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 
3

que tienen que utilizar

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]; 
Cuestiones relacionadas