Notifica apn silent di Firebase

C’è un modo per inviare un APNS silenzioso usando il firebase di google? Sembra che se l’app è in background mostrerà sempre una notifica all’utente.

Grazie?

Puoi inviare messaggi APNS silenziosi utilizzando l’API del server FCM https://firebase.google.com/docs/cloud-messaging/http-server-ref

In particolare è necessario utilizzare:

  • Il campo dati :

Questo parametro specifica le coppie chiave-valore personalizzate del carico utile del messaggio.

Ad esempio, con dati: {“punteggio”: “3×1”}:

Su iOS, se il messaggio viene inviato tramite APNS, rappresenta i campi dati personalizzati. Se viene inviato tramite il server di connessione FCM, verrà rappresentato come dizionario del valore chiave nell’applicazione AppDelegate: didReceiveRemoteNotification :.

La chiave non deve essere una parola riservata (“da” o una parola che inizia con “google” o “gcm”). Non utilizzare nessuna delle parole definite in questa tabella (come collapse_key).

I valori nei tipi di stringa sono raccomandati. Devi convertire i valori in oggetti o altri tipi di dati non stringa (ad es. Interi o booleani) in stringa

  • Il campo contenuto disponibile :

Su iOS, utilizza questo campo per rappresentare il contenuto, disponibile nel payload APNS. Quando viene inviata una notifica o un messaggio e questo è impostato su true, viene triggersta un’app client non triggers. Su Android, i messaggi di dati ritriggersno l’app per impostazione predefinita. Su Chrome, attualmente non supportato.

Documentazione completa: https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json

Per una notifica veramente silenziosa (sia in primo piano che in background) utilizzando il server FCM, utilizzare questi campi:

"to" : "[token]", "content_available": true, "priority": "high", "data" : { "key1" : "abc", "key2" : 123 } 

NOTA: assicurati di utilizzare “content_available” NOT “content-available” con FCM. È convertito per APNS e non verrà ricevuto correttamente altrimenti. La differenza mi aveva fatto inciampare per un po ‘di tempo.

Spiego questo argomento più dettagliatamente sul mio blog. http://blog.boxstory.com/2017/01/how-to-send-silent-push-notification-in.html

** keypoint è: “content_available: true”

questo è un campione JSON

 { "to" : "", "priority": "normal", "content_available": true, <-- this key is converted to 'content-available:1' "notification" : { "body" : "noti body", "title" : "noti title", "link": "noti link " } } 

Nota: se viene inviato il JSON di esempio sopra, la notifica sarà visibile all'utente. Utilizzare di seguito Se non si desidera che l'utente visualizzi la notifica push.

 { "to": "", "priority": "normal", "content_available": true <-- this key is converted to 'content- }