php - notificaciones - Notificación de Apple Push con el envío de datos personalizados
notificaciones push ios (3)
Estoy enviando 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?
Quiero decir que quería saber si puedo enviar datos personalizados con notificación push como jobId, alguna otra cosa ... para que Iphone pueda recuperar y mostrar el trabajo en particular.
Gracias.
Independientemente del idioma y la biblioteca que utilice, la carga útil de notificaciones automáticas es una carga JSON:
{
"aps": {
"badge": 10,
"alert": "Hello world!",
"sound": "cat.caf"
}
}
El token aps
es la información APN de Apple. También puede agregar datos personalizados a su carga útil:
{
"aps": {
"badge": 10,
"alert": "Hello world!",
"sound": "cat.caf"
},
"job_id": 1
}
Cuando reciba la notificación en la aplicación, verifique su param en el diccionario de 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 de 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 la Guía de programación local y de notificación de inserción 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é).
Podemos agregar más de un dato personalizado, pero si utilizo sub_action
como nombre, mi iPhone no puede recibir mensajes push.
Java:
PayLoad payLoad = new PayLoad();
payLoad.addCustomDictionary("action", action_type);
payLoad.addCustomDictionary("subaction", sub_action_type);
Sí, puede enviar datos personalizados, consulte la biblioteca apns-php para conocer todas las necesidades de notificaciones automáticas :