Attualmente mi trovo di fronte a un problema con una versione Chrome (Chromium) in cui la promessa PushManager.subscribe
da un ServiceWorker rimane in uno stato in sospeso.La sottoscrizione di PushManager non soddisfa mai né rifiuta
Il codice stesso è abbastanza semplice:
return serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true
});
Ho un JSON valido e accessibile manifesta, fornendo la GCM Sender ID. Ho anche provato diverse implementazioni, come descritto in this post, ma il risultato è sempre lo stesso.
La parte di abbonamento funziona bene con ogni versione 47+, il problema si verifica con le versioni precedenti. (Sto usando le versioni continue di Chromium per testare le diverse versioni principali).
Si noti inoltre che, mentre si utilizza Chromium 46 (e sotto) su Ubuntu, la promessa rifiuta dopo 15 minuti con un Internal Server Error
.
Hai bisogno di supportare tali vecchie versioni di Chrome? L'attuale versione stabile è 49. Forse qualcosa è cambiato nel modo in cui Chrome parla con GCM e le versioni precedenti non sono più supportate? – Marco
Infatti, poiché Chrome ha una funzione di aggiornamento automatico, una differenza di 2 o 3 versioni, gli utenti con versioni precedenti sono marginali. Anche se, questa è una cifra globale, forse alcuni in qualche luogo/paese l'aggiornamento tende ad arrivare ultimamente. La mancanza di supporto da GCM proviene dalle versioni Chromium che utilizzo o dalle versioni di Chrome "più vecchie"? – Arturo
Non ne sono sicuro, eseguo test per la mia libreria web-push (https://github.com/marco-c/web-push) sia in Firefox che in Chromium e funzionano, ma nei test sono sempre usando le ultime versioni. – Marco