Vue d’ensemble
Ce guide explique comment configurer le Service Worker OneSignal pour les notifications push web.Qu’est-ce qu’un service worker ?
Un Service Worker est un script en arrière-plan qui s’exécute dans un thread séparé de la page principale. Il active des fonctionnalités comme les notifications push, la mise en cache hors ligne et la synchronisation en arrière-plan. Il est installé lorsque votre site l’enregistre et, bien qu’il ne soit pas toujours en cours d’exécution, il peut être réveillé pour gérer des événements (y compris les push) même après que l’utilisateur a quitté la page.
Comment fonctionnent les service workers
Comment intégrer le service worker de OneSignal
En suivant notre guide Configuration du SDK Web, vous recevrez le fichier service workerOneSignalSDKWorker.js.
Télécharger le fichier .js
Téléchargez le fichierOneSignalSDKWorker.js depuis le tableau de bord OneSignal ou Téléchargez le fichier Service Worker OneSignal ici.
Téléverser le fichier .js sur votre serveur
Notre SDK recherche par défaut le fichierOneSignalSDKWorker.js à la racine de votre site, par exemple : https://votresite.com/OneSignalSDKWorker.js
Vous pouvez simplement téléverser ce fichier dans le répertoire racine de votre site et revenir au guide Configuration push web pour les prochaines étapes. Cependant, il est recommandé de placer ce fichier OneSignalSDKWorker.js dans un chemin de sous-répertoire vers lequel vous ne lierez jamais d’utilisateurs comme https://votresite.com/push/onesignal/OneSignalSDKWorker.js.
Vous pouvez placer ce fichier à la racine, mais il peut entrer en conflit avec d’autres Service Workers que vous avez maintenant ou que vous pourriez ajouter à l’avenir. De plus, le fichier doit être placé dans un chemin d’emplacement permanent qui ne changera jamais. Une fois qu’un Service Worker est enregistré auprès du navigateur, il est difficile de le modifier.
Configuration du service worker
Le fichier service worker OneSignalOneSignalSDKWorker.js doit répondre à ces exigences :
- Le fichier doit être accessible publiquement, ce qui signifie que vous devriez pouvoir naviguer vers le fichier dans un navigateur et voir le code.
- Le fichier doit être servi avec un
content-typedeapplication/javascript; charset=utf-8. - Le fichier doit pointer vers la même origine de site (votre domaine de site). Pointer vers un Service Worker sur une origine différente n’est pas autorisé. Pas de CDN ou de sous-domaines.
Confirmer que le service worker est configuré correctement
Visitez le service worker dans votre navigateur. Vous devriez voir le code du service worker :importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");

Exemple du code du service worker
OneSignalSDKWorker.js à la racine de votre site (il est accessible à https://votresite.com/OneSignalSDKWorker.js) alors aucune action supplémentaire n’est nécessaire.
Cependant, si vous l’avez mis dans un sous-répertoire comme https://votresite.com/push/onesignal/OneSignalSDKWorker.js alors vous devrez définir la portée d’enregistrement comme suit :
- Configuration de site typique
- Configuration de code personnalisé

Configuration du service worker pour la configuration de site typique
- Chemin vers les fichiers service worker est le répertoire où le fichier Service Worker OneSignal sera disponible. Si le Service Worker est disponible à :
https://votresite.com/push/onesignal/OneSignalSDKWorker.jsalors le chemin est :/push/onesignal/ - Noms de fichiers service worker principal et de mise à jour est le nom du fichier Service worker. Il devrait être
OneSignalSDKWorker.jsmais si vous l’avez changé, assurez-vous d’utiliser l’extension de fichier.js. Par exemple, si votre serveur force les fichiers à être en minuscules, vous pouvez définir le nom de fichier commeonesignalsdkworker.js - Portée d’enregistrement du service worker sont les pages sur lesquelles ce fichier peut fonctionner. Cela devrait être un chemin vers lequel vous ne lierez jamais d’utilisateurs et où vous n’hébergerez jamais de pages maintenant ou à l’avenir. Un exemple de chemin courant :
/push/onesignal/et la portée pourrait être le même chemin ou plus profond comme :/push/onesignal/js/
Guide de migration du Service Worker OneSignal
Cette section est uniquement pour les clients qui utilisent déjà OneSignal, ont un grand nombre d’abonnés push web et souhaitent modifier les paramètres du Service Worker OneSignal. Cela n’est pas recommandé sauf si vous avez une raison spécifique de le faire.Étapes de migration pour le fichier OneSignalSDKWorker.js
Étapes de migration pour le fichier OneSignalSDKWorker.js
- Conflit avec une PWA
- Conflit avec une configuration AMP
- Conflit avec votre Service Worker de mise en cache, ou toute autre fonctionnalité de Service Worker qui nécessite une portée racine
- Votre site a des exigences de sécurité qui ne permettent pas au code Service Worker tiers de s’exécuter sur une portée qui contrôle une page que vos utilisateurs visiteront.
Choisir une portée de Service Worker OneSignal
Il est recommandé de choisir un chemin de portée de Service Worker vers lequel vous ne lierez jamais un utilisateur, mais qui indique clairement ce qu’il fait. Exemple :/push/onesignal/. De cette façon, votre PWA, AMP ou tout autre ServiceWorker de mise en cache peut contrôler la page qu’un utilisateur visualise pour fonctionner correctement.Il est acceptable de placer plusieurs service workers au même emplacement de chemin, mais DOIVENT avoir un chemin de portée unique.- Option 1 : Changer la portée
- Option 2 : Changer le nom de fichier ou l'emplacement'
Changer en toute sécurité la portée du Service Worker OneSignal
Type de configuration 1. Configuration OneSignal par défaut - Portée racine ”/” ET contenu OneSignalSDKWorker.js par défaut
Confirmez que le contenu de votre fichierOneSignalSDKWorker.js est le même que celui trouvé dans Téléchargez le fichier Service Worker OneSignal ici. (Sans aucun autre code non-OneSignal dont vous pourriez avoir besoin)Dans ce cas, vous pouvez changer la portée OneSignal vers ce que vous choisissez pour faire de la place à un autre Service Worker à placer à la portée racine. Voir ci-dessus Personnalisez votre intégration de Service Worker.Type de configuration 2. Peu commun - Portée racine ”/” ET OneSignalSDKWorker.js (ou votre nom de fichier configuré) contient OneSignal + autre code ou importScripts
Cette section s’applique si vous avez OneSignal ET soit du code personnalisé ouimportScript comme suit dans votre Service Worker actuel.Conservez votre code de service worker existant.
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
pour le conserver pendant une période prolongée. (un an ou plus est recommandé,
dépend de combien de temps vous voulez continuer à envoyer des pushs aux utilisateurs qui ne
revisitent jamais votre site). Exemple : // CONSERVER jusqu'au AAAA-MM-JJ : Requis pour que les pushs fonctionnent correctement pour les utilisateurs qui n'ont pas revisité pour migrer vers le nouveau ServiceWorker spécifique à OneSignal.Créez un nouveau fichier service worker
OneSignalSDKWorker.js dans un répertoire différent, tel que
/push/onesignal/ avec la ligne de code unique suivante
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");Suivez le guide sur "Personnalisation de votre intégration de Service Worker" pour changer votre portée, nom de fichier et chemin.
À ce stade, les nouveaux utilisateurs et les utilisateurs qui reviennent seront automatiquement abonnés au nouveau ServiceWorker OneSignal.
Attendez la durée (environ un an) comme indiqué à l'étape 1.
Suivez le guide OneSignal - Supprimer les utilisateurs pour supprimer les utilisateurs plus anciens que la chronologie que vous avez choisie.
Supprimez le commentaire du service worker original
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js"); avec le commentaire de votre ServiceWorker racine original.