2015-05-21 25 views
5

Ho configurato apns_certificate.pem e apns_privatekey.pem per server. Sto usando il server node.js per l'invio di notifiche push. Ho inviato correttamente la notifica al server apns ma il dispositivo non ha ricevuto alcuna notifica push.APN Messaggio inviato al server, nessuna notifica sul dispositivo iOS

Ho anche attraversato Troubleshooting Push Notifications. Ho controllato tutti i file PEM seguendo il comando sul lato server come descritto nel documento di risoluzione dei problemi.

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem 

Ha avuto successo.

Ho controllato che il mio server fosse in grado di connettersi al server apns seguendo i comandi.

$ telnet 1-courier.push.apple.com 5223 
$ telnet gateway.sandbox.push.apple.com 2195 
$ telnet gateway.push.apple.com 2195 

L'ho configurato correttamente sul progetto iOS e sto ricevendo anche il token del dispositivo.

Ma ancora non ricevevo notifiche push sul mio dispositivo.

+0

Era l'applicazione in esecuzione al momento dell'invio della notifica? In tal caso: hai implementato i metodi corrispondenti? – tilo

+0

L'applicazione era in esecuzione sullo sfondo. Ho implementato l'applicazione "(void): (applicazione UIApplication *) didReceiveRemoteNotification: (NSDictionary *) userInfo" metodo anche –

+0

Infine, ho scoperto che si trattava di un problema del server. Il server utilizzava Node.js. Ci sono alcuni problemi con l'invio di notifiche push agli apns dal modulo nodo. Uso il codice del sito del server php che viene pubblicato sul tutorial di notifica push di RayWanderlich. sta funzionando liscio. –

risposta

-2

Verificare che il token del dispositivo sia valido o meno. Per quale token dispositivo, server che invia notifiche push. Anche la notifica push dovrebbe controllare la modalità di background dell'app.

Se tutto quanto sopra corretto, riceverai una notifica push.

Controllare anche questo due metodi di applicazione delegato e inviare gettone dispositivo dal iOS al server:

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 
     NSString *str = [NSString stringWithFormat:@"Device Token=%@",deviceToken]; 
str = [str stringByReplacingOccurrencesOfString:@" " withString:@""]; 
     NSLog(@"This is device token%@", str); 
    } 

    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err { 
     NSString *str = [NSString stringWithFormat: @"Error: %@", err]; 
     NSLog(@"Error %@",err);  
    } 
+0

Nella mia domanda ho menzionato che ho il token dispositivo e la registrazione è andata a buon fine. –

+0

Quindi controllare il codice lato server con il token dispositivo per l'invio di un messaggio al dispositivo. –

+0

Si prega di leggere attentamente la domanda. –