2011-11-15 10 views
47

Envío de notificaciones push desde la aplicación de trabajo php a iphone. Estoy enviando notificaciones automáticas sobre nuevos trabajos. ¿Es posible que cuando el usuario haga clic en la vista emergente de notificación de inserción, el usuario lo redirija al trabajo específico en el dispositivo?Notificación de Apple Push con envío de datos personalizados

Quiero decir que quería saber si puedo enviar datos personalizados con notificación de inserción como jobId, algo más ... para que Iphone pueda recuperar y mostrar el trabajo en particular?

Gracias.

+3

rckones oh..sorry .. No sabía cómo acusarme como respuesta ... mi culpa ... ahora lo resolvió ... :) – vikas

+5

Estamos todos aquí para aprender. – rckoenes

Respuesta

114

Independientemente de la lengua y la biblioteca que utiliza, la carga útil de notificación de inserción es una carga útil JSON:

{ 
    "aps": { 
     "badge": 10, 
     "alert": "Hello world!", 
     "sound": "cat.caf" 
    } 
} 

El aps token es la información APN de Apple. Puede agregar datos personalizados a su carga útil, así:

{ 
    "aps": { 
     "badge": 10, 
     "alert": "Hello world!", 
     "sound": "cat.caf" 
    }, 
    "job_id": 1 
} 

Cuando reciba la notificación de la aplicación, comprobar si su parámetro en el diccionario notificación:

- (void)handleBackgroundNotification:(NSDictionary *)notification 
{ 
    NSDictionary *aps = (NSDictionary *)[notification objectForKey:@"aps"]; 
    NSMutableString *alert = [NSMutableString stringWithString:@""]; 
    if ([aps objectForKey:@"alert"]) 
    { 
     [alert appendString:(NSString *)[aps objectForKey:@"alert"]]; 
    } 
    if ([notification objectForKey:@"job_id"]) 
    { 
     // do something with job id 
     int jobID = [[notification objectForKey:@"job_id"] intValue]; 
    } 
} 

Tenga en cuenta que el tamaño total de la carga útil es 256 bytes, y eso incluye, por supuesto, sus parámetros personalizados. Por lo tanto, puede que tenga que (en riesgo de reducir la legibilidad) llamar a su param personalizado "ji" en lugar de "job_id" para exprimir bytes.

Todo esto está documentado en el Local and Push Notification Programming Guide en la documentación de iOS. Definitivamente recomendaría una lectura porque es más compleja de lo que inicialmente suena (al menos, eso es lo que pensé).

+0

¿Cómo puedo agregar datos personalizados a la carga útil? – Haring10

+0

@JoshHarington "job_id": 1 es una información personalizada en la carga útil –

+12

Desde iOS 8, el tamaño de la carga útil se ha aumentado a 2 KB desde 256 bytes :) –

8

Sí puede enviar datos personalizados, compruebe apns-php library para toda notificación de inserción necesita:

+0

Oye: ¿Podrías explicar el formato de Push in Php. –

+0

@Asim No tengo mucha información sobre el formato, pero puede usar esta biblioteca que mencioné, para PHP. Puede realizar ingeniería inversa para ver el formato. – Arfeen

0

podemos añadir más de un dato personalizados, pero, si yo uso sub_action como el nombre, mi iPhone no puede recibir empuje msg

Java:

PayLoad payLoad = new PayLoad(); 
payLoad.addCustomDictionary("action", action_type); 
payLoad.addCustomDictionary("subaction", sub_action_type); 
Cuestiones relacionadas