2017-07-20 3 views
1

Je construis un PWA en utilisant la dernière version d'Angular. Je me sers du Angular Mobile Toolkit et je veux envoyer des notifications locales en utilisant angular/service-worker. Mais je ne peux pas le faire fonctionner.Notification locale Android avec Angular Service Worker

Je suis en mesure de m'abonner et d'envoyer une notification à partir d'un serveur, mais je voudrais envoyer une notification de mon application elle-même. J'ai essayé d'utiliser angular2-notifications, il fonctionne bien sur un ordinateur de bureau, mais le constructeur

new Notification(title, options) 

de l'API de notification ne fonctionne plus sur Android, il ne me convient pas.

Existe-t-il un moyen d'utiliser angular/service-worker pour envoyer des notifications locales sur Android (Chrome)? Ou peut-être une autre alternative.

EDIT

Maciej réponse m'a fait la bonne direction, je suis en mesure de le faire fonctionner en utilisant la pièce de code suivante

navigator.serviceWorker.getRegistration() 
     .then((reg) => { 
       reg.showNotification(title, noti); 
      }); 

PS: Sachez que je cela avec angular/service-worker. J'ai utilisé angular/service-worker pour enregistrer le service-worker et le code ci-dessus utilise le service-worker enregistré. Sachez également que pour que le technicien puisse fonctionner, vous devez disposer d'une connexion sécurisée.

Répondre

1

Chrome sur Android n'est pas compatible avec l'API de notification de HTML5, donc vous ne pourrez pas envoyer local notifications.

Pour autant que je peux voir dans le code source @angular/service-worker, pour afficher les notifications, ils utilisent la méthode suivante:

this.worker.showNotification(desc['title'], options);

this.worker est un objet de type VersionWorker.

Il est donc probable qu'il existe un moyen de réutiliser this.worker pour votre usage.

code complet Push plug-in écrit par l'équipe angulaire, se trouve ici: https://github.com/angular/mobile-toolkit/blob/master/service-worker/worker/src/plugins/push/index.ts

repo Exemple de plug-in service travailleur se trouve ici: https://github.com/maciejtreder/ng-http-sw-proxy (catalogue plugin).

+0

Bonjour Maciej, merci pour votre réponse. Je suis conscient que Chrome sur Android n'est pas compatible avec l'API de notification. Mais je peux utiliser l'API Service Worker (dans mon cas, j'utilise through [angular/service-worker] (https://github.com/angular/mobile-toolkit/tree/master/service-worker/worker)) s'abonner aux notifications d'un serveur. Je me demande si je peux utiliser la même API pour envoyer des notifications locales –

+0

Vous avez raison. J'ai mis à jour ma réponse. –

+0

Mis à jour à nouveau;) –