10
votes

Promesse de souscription de PushManager Ne jamais remplir ni rejeter

Je suis actuellement confronté à un problème avec une version chromée (chrome) où le pushmanager.subscribe Promise d'un travailleur de service reste dans un état en attente .

Le code elle-même est assez simple: xxx

J'ai un manifeste JSON valide et accessible , fournissant l'identifiant de l'expéditeur gcm . J'ai également essayé différentes implémentations, comme décrit dans Cet article , mais le Le résultat est toujours le même.

La partie d'abonnement fonctionne bien avec chaque version 47 + , le problème apparaît avec des versions plus anciennes. (J'utilise des constructions continues de chrome pour tester les différentes versions principales).

Notez également que, tout en utilisant Chrome 46 (et ci-dessous) sur Ubuntu, la promesse rejette après 15 minutes avec une erreur de serveur .


3 commentaires

Avez-vous besoin de supporter de telles anciennes versions de Chrome? La version stable actuelle est 49. Peut-être que quelque chose a changé dans la manière dont les pourparlers chromés avec GCM et les versions plus anciennes ne sont plus supportées?


En effet, comme Chrome a une fonction de mise à jour automatique, une différence de 2 ou 3 versions, utilisateurs ayant des versions plus anciennes sont marginales. Bien que c'est une figure mondiale, peut-être certaines dans certains pays / pays que la mise à jour a tendance à arriver ces derniers temps. Le manque de soutien de la GCM provient-il des constructions de chrome que j'utilise, ou les "plus âgées" chromées?


Je ne suis pas sûr, je gère des tests pour ma bibliothèque Web-push ( Github.com/marco- C / Web-Push ) à Firefox et Chromium et ils fonctionnent, mais dans les tests, j'utilise toujours les dernières versions.


6 Réponses :


1
votes

Le problème est avec uservisibleOnly: true comme paramètre.

Cela n'a été introduit que dans le chrome 47. Avant que vous devez le transmettre en tant que paramètre manifeste. https://johnme-gcm.appspot.com/manifest.json est un bon exemple suivre.


2 commentaires

J'ai un gcm_user_visible_only défini sur true dans le manifeste. Mais si je supprimais le paramètre de la méthode , j'ai une erreur chrome prend actuellement uniquement la prise en charge de l'API Push pour les abonnements qui entraîneront des messages visibles par l'utilisateur [...] / I> Je pense que votre exemple a été introduisant dans chrome44 +


ne fonctionne toujours pas. Ne pas retourner ou rejeter la promesse!




0
votes

Ce problème est reproductible sur chrome 55.0.2883.87 sous Windows 7. La promesse de souscription n'est ni la résolution ni le rejet. Mais cela ne se produit que sur une machine avec la combinaison mentionnée


0 commentaires

0
votes

J'ai eu le même problème dans le chrome 67 et un redémarrage du navigateur l'a réparé.


0 commentaires

0
votes

Mettre à jour et redémarrez mon Google Chrome a été résolu pour moi


0 commentaires

0
votes

J'ai eu le même problème tout en utilisant un proxy d'entreprise. Parce qu'il n'y a pas de connexion Internet, l'abonnement ne peut être établi et la promesse ne résout jamais.


0 commentaires