2011-11-15 5 views
47

Sto inviando notifiche push dall'applicazione di lavoro php a iphone. Invio notifiche push relative a nuovi lavori. È possibile che quando l'utente fa clic sulla vista della notifica push pop-up, l'utente reindirizzi al particolare lavoro nel dispositivo.Notifica push Apple con invio di dati personalizzati

Intendo che volevo sapere posso inviare qualsiasi dato personalizzato con notifica push come jobId, qualcos'altro .... in modo che Iphone fine può recuperare e mostrare il lavoro particolare?

Grazie.

+3

rckones oh..sorry .. Non sapevo come rispondere come risposta ... mia colpa ... l'ho risolto ... :) – vikas

+5

Siamo tutti qui per imparare. – rckoenes

risposta

114

Indipendentemente dalla lingua e la biblioteca si utilizza, il carico utile notifica push è un carico utile JSON:

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

Il aps token è i dati APN di Apple. È possibile aggiungere dati personalizzati a vostro carico così:

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

Quando si riceve la notifica in app, verificare la presenza di tuo param nel dizionario di notifica:

- (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]; 
    } 
} 

Tenete a mente che la dimensione totale del carico utile è 256 byte e questo include, naturalmente, i parametri personalizzati. Quindi potresti dover (a rischio di ridurre la leggibilità) chiamare il tuo parametro personalizzato "ji" anziché "job_id" per spremere i byte.

Tutto ciò è documentato nello Local and Push Notification Programming Guide nella documentazione di iOS. Sicuramente consiglierei una lettura perché è più complessa di quanto inizialmente suoni (almeno, è quello che pensavo).

+0

Come posso aggiungere dati personalizzati al carico utile? – Haring10

+0

@JoshHarington "job_id": 1 è un dato personalizzato nel carico utile –

+12

Da iOS 8 la dimensione del carico utile è stata aumentata a 2 KB da 256 byte :) –

8

Sì, è possibile inviare i dati personalizzati, controllare apns-php library per tutti notifica push esigenze:

+0

Hey: Per favore, spiega il formato di Push in Php. –

+0

@ Asim Non ho molte informazioni sul formato, ma puoi usare questa libreria che ho citato, per PHP. È possibile decodificare per vedere il formato. – Arfeen

0

possiamo aggiungere più di un dati personalizzati, ma, se io uso sub_action come il nome, il mio iPhone non può ricevere spinta msg

Java:

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