Passer au contenu principal

Aperçu

OneSignal fournit des messages d’erreur détaillés dans la Console des outils de développement de votre navigateur lorsque votre site a le SDK Web actif. Avant le dépannage, vérifiez la Configuration du SDK Web pour vous assurer que :
  • L’extrait JavaScript OneSignal est placé dans le <head> de votre site.
  • Les fichiers service worker sont correctement placés à la racine et accessibles via HTTPS.
Suivez les étapes ci-dessous pour déboguer les problèmes courants et vérifier que votre intégration fonctionne correctement.

Étapes initiales de dépannage

1

Tester dans un profil de navigateur propre

Ouvrez votre site web dans un nouveau profil de navigateur.
2

Ouvrir les outils de développement du navigateur

Lancez la Console de développement en appuyant sur F12, en faisant un clic droit et en sélectionnant “Inspecter”, ou en naviguant vers Affichage > Développeur > Console JavaScript.
3

Tenter de s'abonner et observer les erreurs

Essayez de vous abonner à votre site et vérifiez la Console pour les erreurs. Puis comparez l’erreur avec la liste ci-dessous pour obtenir des conseils.

Ouvrez les outils de développement de votre navigateur et inspectez les erreurs


Messages d’erreur courants et solutions

Erreurs de service worker (403, 404)

[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘https://www.yoursite.com/’) with script (‘https://www.yoursite.com/...’): A bad HTTP response code (403) was received when fetching the script.

Exemple d'erreur d'installation de service worker

Si vous voyez des erreurs de service worker 403 ou 404, vos fichiers de service worker sont probablement bloqués, redirigés ou manquants.
  • Confirmer la disponibilité du fichier
    • Visitez l’URL du fichier service worker dans le navigateur. Vous pouvez trouver le chemin dans le tableau de bord OneSignal Paramètres > Push & In-app > Web.
    • Exemples de chemins :
      • https://yoursite.com/OneSignalSDKWorker.js
      • https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
    • Si vous utilisez WordPress, le chemin est :
    • https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
  • Si ceux-ci retournent un 403/404 ou une redirection, votre configuration push ne fonctionnera pas.
  • Les noms de fichiers sont sensibles à la casse et doivent être accessibles publiquement.
Voir le Guide de configuration du Service Worker pour confirmer la configuration correcte.

Type MIME non pris en charge

  • Votre service worker doit être servi en tant que application/javascript.
  • Servir le fichier avec un autre type MIME (par ex. text/html) entraînera l’échec de l’enregistrement.

Erreur de type MIME dans le service worker

Les redirections ne sont pas autorisées

  • Les fichiers SDK OneSignal ne doivent pas rediriger.
  • Ils doivent être hébergés sur la même origine que votre site (pas de domaines CDN ou proxy).

Erreur de redirection dans la console

La configuration Web Push ne peut être utilisée que sur l’origine de site correcte

  • Votre domaine actuel ne correspond pas à l’URL du site configurée dans le tableau de bord OneSignal.
  • Le protocole, le domaine et le sous-domaine doivent correspondre exactement.

Erreur de non-concordance de l'origine du site

OneSignal est déjà défini

  • Le SDK est initialisé plus d’une fois, souvent causé par la combinaison de la configuration du plugin WordPress avec du code manuel.

Erreur d'initialisation en double du SDK


Dépannage du web push mobile

iOS - Voir Safari Web Push sur iOS pour les exigences. Android - Le web push fonctionne automatiquement sur les appareils mobiles Android utilisant un navigateur pris en charge.
  1. Assurez-vous d’abord que votre site fonctionne sur Desktop avant de tester sur mobile.
  2. Vous êtes peut-être déjà abonné sur le web Android, mais notre tableau de bord ne différencie pas les abonnés web mobiles des abonnés web de bureau. Un abonné web Android s’affiche comme Linux armv8l dans la colonne Appareil de la page “Abonnements”.
  3. Vérifiez si les notifications sont activées sur l’application du navigateur. Par exemple, sur Chrome dans vos Paramètres Android > Gestionnaire d’applications > Chrome. Assurez-vous que “Afficher les notifications” est coché.
  4. Effacez votre cache. Si le cache de votre navigateur est plein sur mobile, cela peut empêcher d’autres invites ou abonnements.
  5. Certains utilisateurs ont signalé que la désinstallation et la réinstallation de l’application du navigateur ont résolu un problème où l’invite ne s’affichait pas.

Dépannage Safari

  1. L’URL du site définie dans la configuration Safari doit être exactement ce que vous voyez lorsque vous visitez le site. Par exemple, si vous voyez https://www.yoursite.com dans le navigateur, vous devez ajouter ceci au champ de configuration. Les sites www et non-www sont des origines différentes.
  2. Safari 12.1+ a créé une nouvelle règle selon laquelle les utilisateurs doivent effectuer une action sur le site avant de pouvoir être invités
Vous devez utiliser l’Invite coulissante sur Safari. C’est pourquoi l’invite coulissante s’affiche toujours avant la native si vous utilisez notre configuration typique. Si vous souhaitez utiliser uniquement l’invite native du navigateur, vous devrez configurer votre propre déclencheur pour détecter une action de l’utilisateur. Ensuite, appelez nos méthodes du SDK Web pour déclencher l’invite.
  1. Enfin, essayez de Effacer votre cache et réinitialiser les autorisations push pour voir votre site comme un utilisateur pour la première fois et essayer de vous abonner à nouveau.

Les icônes Safari ou le nom du site ne changent pas

En raison de l’implémentation personnalisée du web push de Safari, le nom de votre site et l’image de l’icône sont traités comme des ressources statiques téléchargées et stockées localement sur l’ordinateur de l’utilisateur. Les nouveaux noms de site et les nouvelles images ne sont pas mis à jour ou téléchargés. Malheureusement, toute personne abonnée avec ces anciennes ressources devra effacer votre cache et réinitialiser les autorisations push et revenir sur le site pour se réabonner.

Effacer votre cache et réinitialiser les autorisations push

Voir Effacer votre cache et réinitialiser les autorisations push pour plus de détails.

Débogage à l’aide des outils de développement du navigateur

Les outils de développement du navigateur peuvent être utilisés pour interagir avec le SDK web sur votre page web et activer la journalisation ou envoyer facilement des notifications de test à vous-même.
1

Accéder à la console des outils de développement du navigateur

Accès à la console de développement

Débogage sur Desktop :
  • Chrome : Faites un clic droit sur la page, cliquez sur Inspecter, et cliquez sur l’onglet Console de la fenêtre contextuelle qui s’ouvre.
  • Firefox : Faites un clic droit sur la page, cliquez sur Inspecter l’élément, et cliquez sur l’onglet Console de la fenêtre contextuelle qui s’ouvre.
  • Safari : Allez dans Safari → Préférences → Avancé et assurez-vous que Afficher le menu Développement dans la barre de menus est coché. Ensuite, sur votre page web, faites un clic droit, cliquez sur Inspecter l’élément, et cliquez sur l’onglet Console de la fenêtre contextuelle qui s’ouvre.
Débogage sur Android :
  • Chrome sur Android : Activez le débogage USB, connectez votre appareil à votre ordinateur et accédez aux Dev Tools avec chrome://inspect#devices dans votre navigateur Chrome de bureau.
  • Firefox sur Android : Activez le débogage USB, connectez votre appareil à votre ordinateur et accédez aux Dev Tools avec about:debugging dans votre navigateur Firefox de bureau.
2

Activer la journalisation du SDK web

Vous devriez maintenant pouvoir exécuter des commandes dans la Console des outils de développement.Exécutez le code suivant :
OneSignal.Debug.setLogLevel('trace');
Vous devriez voir undefined comme résultat.Si vous voyez :
Uncaught ReferenceError: OneSignal is not defined(…) ReferenceError: OneSignal is not defined
Alors OneSignal n’est pas actif sur votre page web, ou vous devez basculer vers le contexte de frame top (voir la capture d’écran ci-dessus).Maintenant que la journalisation de débogage de notre SDK web est activée, veuillez fermer l’onglet et ouvrir un nouvel onglet sur la même page (actualiser la page ne suffit pas pour déclencher certains de nos événements SDK). Vous devriez voir beaucoup de sortie dans la Console.

Console avec logs SDK détaillés

Vous pouvez toujours désactiver cette journalisation supplémentaire en entrant ce code :
OneSignal.Debug.setLogLevel('warn');
3

Vérifier si vous êtes abonné

Exécutez dans la Console :
function getUserInfo() {
	console.log('getUserInfo()');
	Promise.all([
		OneSignal.Notifications.permission,
		OneSignal.User.PushSubscription.id,
		OneSignal.User.PushSubscription.token,
		OneSignal.User.PushSubscription.optedIn,
		OneSignal.context.serviceWorkerManager.getActiveState(),
	])
		.then(
			([
				isSubscribed,
				subscriptionId,
				pushToken,
        optedIn,
				serviceWorkerActive,
			]) => {
        console.log('What is the current URL of this page?', location.href);
         console.log(
					"Is a service worker registered and active? (should be false on Safari, otherwise should be 'OneSignal Worker')?",
					serviceWorkerActive
				);
        console.log('')
        console.log('Are you subscribed, in the browser?', isSubscribed)
        console.log('Are you opted-in, in OneSignal?' , optedIn);
				console.log('');
				console.log('What is your OneSignal Subscription ID?', subscriptionId);
				console.log('What is your Push Token?', pushToken);

			}
		)
		.catch(e => {
			console.error('Issue determining whether push is enabled:', e);
		});
}
getUserInfo();
Selon que vous soyez abonné ou non, vous devriez voir quelque chose de similaire à ce qui suit :
What is the current URL of this page? http://localhost:8080/
Is a service worker registered and active? (should be false on Safari, otherwise should be 'OneSignal Worker')? OneSignal Worker

Are you subscribed, in the browser? true
Are you opted-in, in OneSignal? true

What is your OneSignal Subscription ID? 22ff6b0d-60e1-469d-b667-005274204322
What is your Push Token? https://fcm.googleapis.com/fcm/send/drKvxiBc9Eo:APA91bFoa88bzkuudYFmuyNb8uIA60dI44SnBbXi0_4GAYa2Ln07XzrOs1-k5KVxrwKf8oVxBvzIXVN-44bamCRkaQ6cFODy7-8slGgnV3i2OqS3EgYrzU6VcO1KZaBHacsZhqvWqIRv
4

Envoyez-vous une notification de test

Uniquement si vous êtes abonné (voir la section ci-dessus), vous pouvez vous envoyer une notification de test. Voir Trouver et définir des abonnements de test pour plus de détails.

Débogage de la non-réception des notifications Chrome

Remarque : Veuillez suivre ces étapes dans l’ordre.
1

Suivez les étapes 1 à 4 ci-dessus pour essayer de recevoir une notification de test

  • Pour l’étape n°3, êtes-vous abonné ? Si ce n’est pas le cas, arrêtez-vous ici, effacez complètement les données de votre site en suivant ces instructions spécifiques, puis réabonnez-vous à votre site afin de recevoir des notifications. Exécutez à nouveau l’étape n°3 pour vérifier que vous êtes réellement abonné. Lorsque vous suivez les instructions d’effacement des données du site, n’oubliez pas de fermer tous les onglets de votre site ou de redémarrer votre navigateur, car Chrome empêche l’accès au stockage du site tant que tous les onglets existants de votre site ne sont pas fermés.
  • Pour l’étape n°4, recevez-vous une notification de test ? Si oui, vous avez terminé !
2

Vérifiez la page de livraison dans votre tableau de bord OneSignal

Si vous êtes abonné mais que vous n’avez pas reçu de notification de test, veuillez visiter la page de livraison de votre tableau de bord OneSignal pour voir si les notifications de test que vous vous êtes envoyées s’affichent en haut.
3

Utilisez chrome://gcm-internals pour vérifier la livraison des messages

Si vous êtes abonné, que vous n’avez pas reçu de notification de test, mais que vous voyez que le message a été livré (en vert), veuillez ouvrir Chrome à chrome://gcm-internals.Cliquez sur le bouton “Start Recording” en haut à gauche. Assurez-vous de voir “Connection State: CONNECTED”.Laissez cela ouvert et envoyez-vous un push (suivez l’étape n°4 ci-dessus pour vous envoyer une notification de test).Vous devriez voir quelque chose dans le “Receive Message Log” si vous l’avez reçu.

Journalisation des internes GCM

  • Si vous ne voyez pas de “Data msg received”, alors votre navigateur Chrome ne reçoit pas du tout la notification. Veuillez nous en informer sur le support.
  • Si vous voyez “Data msg received” mais que vous n’avez toujours pas reçu de notification, passez à l’étape n°4.
4

Utilisez chrome://serviceworker-internals pour déboguer le service worker

Visitez chrome://serviceworker-internals.Recherchez Scope: https://your-site.com.Cliquez sur Inspect, ou Start -> Inspect, comme ci-dessous. Une fenêtre contextuelle des outils de développement Chrome apparaîtra.

Inspection du service worker

Dans la fenêtre contextuelle des outils de développement Chrome pour notre service worker, cliquez sur l’onglet Console, et exécutez OneSignalWorker.log.trace();. Cela devrait retourner undefined. Tous les messages de notre service worker devraient maintenant apparaître dans cette fenêtre contextuelle.
5

Capturez la sortie de la console et contactez le support

Revenez de la fenêtre contextuelle Dev Tools du service worker à la console des outils de développement de votre page principale (celle utilisée à l’étape 2). Envoyez-vous une autre notification de test. Si vous ne voyez toujours pas la notification, examinez la sortie de la console pour détecter de nouvelles erreurs ou messages. Pour partager ces informations avec le support :
  • Faites un clic droit dans la Console.
  • Sélectionnez Enregistrer sous … pour exporter le fichier journal.
  • Joignez ce fichier et contactez notre support par chat pour obtenir de l’aide supplémentaire.
Besoin d’aide ?Discutez avec notre équipe d’assistance ou envoyez un e-mail à support@onesignal.comVeuillez inclure :
  • Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
  • Votre OneSignal App ID
  • L’External ID ou le Subscription ID le cas échéant
  • L’URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
  • Tous les journaux ou messages d’erreur pertinents
Nous serons ravis de vous aider !