Saltar al contenido principal

Descripción general

OneSignal proporciona mensajes de error detallados en la Consola de Herramientas de Desarrollador de tu navegador cuando tu sitio tiene el Web SDK activo. Antes de solucionar problemas, verifica nuevamente la Configuración del Web SDK para asegurar:
  • El fragmento JavaScript de OneSignal está ubicado en el <head> de tu sitio.
  • Los archivos service worker están ubicados correctamente en la raíz y accesibles vía HTTPS.
Sigue los pasos a continuación para depurar problemas comunes y verificar que tu integración funciona correctamente.

Pasos iniciales de solución de problemas

1

Probar en un perfil de navegador limpio

Abre tu sitio web en un nuevo perfil de navegador.
2

Abrir herramientas de desarrollador del navegador

Inicia la Consola de Desarrollador presionando F12, haciendo clic derecho y seleccionando “Inspeccionar”, o navegando a View > Developer > JavaScript Console.
3

Intentar suscribirse y observar errores

Intenta suscribirte a tu sitio y verifica la Consola en busca de errores. Luego compara el error con la lista a continuación para orientación.

Abre las herramientas de desarrollador de tu navegador e inspecciona errores


Mensajes de error comunes y soluciones

Errores 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.

Ejemplo de error de instalación de service worker

Si ves errores de service worker 403 o 404, tus archivos service worker probablemente estén bloqueados, redirigidos o faltantes.
  • Confirmar disponibilidad del archivo
    • Visita la URL del archivo service worker en el navegador. Puedes encontrar la ruta en el dashboard de OneSignal Settings > Push & In-app > Web.
    • Rutas de ejemplo:
      • https://yoursite.com/OneSignalSDKWorker.js
      • https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
    • Si usas WordPress la ruta es:
    • https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
  • Si estos devuelven un 403/404 o redirección, tu configuración push no funcionará.
  • Los nombres de archivo distinguen mayúsculas de minúsculas y deben ser públicamente accesibles.
Consulta la Guía de Configuración de Service Worker para confirmar la configuración correcta.

Tipo MIME no soportado

  • Tu service worker debe ser servido como application/javascript.
  • Servir el archivo con otro tipo MIME (ej. text/html) causará que el registro falle.

Error de tipo MIME en service worker

No se permiten redirecciones

  • Los archivos SDK de OneSignal no deben redirigir.
  • Deben estar alojados en el mismo origen que tu sitio (sin dominios CDN o proxy).

Error de redirección en consola

La configuración de Web Push solo puede usarse en el origen de sitio correcto

  • Tu dominio actual no coincide con la URL del sitio configurada en el dashboard de OneSignal.
  • El protocolo, dominio y subdominio deben coincidir exactamente.

Error de discordancia de origen de sitio

OneSignal ya está definido

  • El SDK está inicializado más de una vez, a menudo causado por combinar la configuración del plugin de WordPress con código manual.

Error de inicialización duplicada del SDK


Solución de problemas de push web móvil

iOS - Consulta Safari Web Push en iOS para requisitos. Android - Web push funciona automáticamente en dispositivos móviles Android usando un navegador soportado.
  1. Primero asegúrate de que tu sitio funcione en Desktop antes de probar en móvil.
  2. Puede que ya estés suscrito en la web de Android, pero nuestro dashboard no diferencia a los suscriptores web móviles de los suscriptores web de escritorio. Un suscriptor web de Android se muestra como Linux armv8l en la columna Device de la página “Subscriptions”.
  3. Verifica si las Notificaciones están habilitadas en la aplicación del navegador. Por ejemplo, en Chrome en tu Android Settings > Application Manager > Chrome. Asegúrate de que “Show notifications” esté marcado.
  4. Limpia tu Caché. Si tu caché del navegador está lleno en móvil, esto puede no permitir más solicitudes o suscripciones.
  5. Algunos usuarios reportaron que desinstalar y reinstalar la aplicación del navegador solucionó un problema donde la solicitud no se mostraba.

Solución de problemas de Safari

  1. La URL del Sitio establecida en la Configuración de Safari debe ser exactamente lo que ves al visitar el sitio. Por ejemplo, si ves https://www.yoursite.com en el navegador, entonces debes agregar esto al campo de configuración. Los sitios www y no-www son orígenes diferentes.
  2. Safari 12.1+ creó una nueva regla de que los usuarios deben realizar alguna acción en el sitio antes de que puedan ser solicitados
Debes usar el Slide Prompt en Safari. Por eso el slide prompt siempre se muestra antes del nativo si usas nuestra Configuración Típica. Si quieres usar solo la solicitud nativa del navegador, necesitarás configurar tu propio activador para detectar una acción del usuario. Luego llama a nuestros métodos del Web SDK para activar la solicitud.
  1. Finalmente, intenta Limpiar tu caché y restablecer permisos push para ver tu sitio como un usuario por primera vez e intentar suscribirte nuevamente.

Los íconos o nombre del sitio de Safari no cambian

Debido a la implementación personalizada de web push de Safari, el nombre de tu sitio y la imagen del ícono se tratan como recursos estáticos descargados y almacenados localmente en la computadora del usuario. Los nombres de sitio nuevos y las imágenes nuevas no se actualizan ni descargan. Desafortunadamente, cualquier persona suscrita con estos recursos antiguos necesitará limpiar tu caché y restablecer permisos push y regresar al sitio para volver a suscribirse.

Limpiar tu caché y restablecer permisos push

Consulta Limpiar tu caché y restablecer permisos push para más detalles.

Depurar usando Herramientas de Desarrollador del Navegador

Las herramientas de desarrollador del navegador pueden usarse para interactuar con el web SDK en tu página web y habilitar logging o enviar fácilmente notificaciones de prueba a ti mismo.
1

Acceder a la Consola de Herramientas de Desarrollador del Navegador

Accediendo a la consola del desarrollador

Depuración de Escritorio:
  • Chrome: Haz clic derecho en la página, haz clic en Inspect, y haz clic en la pestaña Console de la ventana emergente que se abre.
  • Firefox: Haz clic derecho en la página, haz clic en Inspect element, y haz clic en la pestaña Console de la ventana emergente que se abre.
  • Safari: Ve a Safari → Preferences → Advanced y asegúrate de que Show Develop menu in menu bar esté marcado. Luego, en tu página web, haz clic derecho, haz clic en Inspect element, y haz clic en la pestaña Console de la ventana emergente que se abre.
Depuración de Android:
  • Chrome en Android: Habilita USB Debugging, conecta tu dispositivo a tu computadora y accede a las Dev Tools con chrome://inspect#devices en tu navegador Chrome de Escritorio.
  • Firefox en Android: Habilita USB Debugging, conecta tu dispositivo a tu computadora y accede a las Dev Tools con about:debugging en tu navegador Firefox de Escritorio.
2

Habilitar logging del web SDK

Ahora deberías poder ejecutar comandos en la Consola de herramientas de desarrollador.Ejecuta el siguiente código:
OneSignal.Debug.setLogLevel('trace');
Deberías ver undefined como resultado.Si ves:
Uncaught ReferenceError: OneSignal is not defined(…) ReferenceError: OneSignal is not defined
Entonces OneSignal no está activo en tu página web, o necesitas cambiar al contexto del frame top (ver captura de pantalla arriba).Ahora que el logging de depuración de nuestro web SDK está habilitado, por favor cierra la pestaña y abre una nueva pestaña a la misma página (refrescar la página no es suficiente para activar algunos de nuestros eventos del SDK). Deberías ver mucha salida en la Consola.

Consola con logs detallados del SDK

Siempre puedes deshabilitar este logging adicional ingresando este código:
OneSignal.Debug.setLogLevel('warn');
3

Verificar si estás suscrito

Ejecuta en la Consola:
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();
Dependiendo de si estás suscrito, deberías ver algo similar a lo siguiente:
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

Enviarte una notificación de prueba

Solo si estás suscrito (ver sección anterior), puedes enviarte una notificación de prueba. Consulta Find & Set Test Subscriptions para detalles.

Depurar no recibir notificaciones de Chrome

Nota: Por favor completa estos pasos en orden.
1

Sigue los pasos 1 - 4 arriba para intentar recibir una notificación de prueba

  • Para el paso #3, ¿estás suscrito? Si no, detente aquí, limpia completamente los datos de tu sitio siguiendo estas instrucciones específicas, y luego vuelve a suscribirte a tu sitio para recibir notificaciones. Ejecuta el paso #3 nuevamente después para verificar que estás realmente suscrito. Al seguir las instrucciones de limpiar datos del sitio, recuerda cerrar todas las pestañas a tu sitio o reiniciar tu navegador, ya que Chrome previene que el almacenamiento del sitio sea accedido hasta que todas las pestañas existentes del sitio estén cerradas.
  • Para el paso #4, ¿recibes una notificación de prueba? ¡Si la recibes, has terminado!
2

Verificar la Página de Entrega en tu dashboard de OneSignal

Si estás suscrito pero no recibiste una notificación de prueba, por favor visita tu Página de Entrega del dashboard de OneSignal para ver si las notificaciones de prueba que te has enviado se muestran en la parte superior.
3

Usar chrome://gcm-internals para verificar entrega de mensajes

Si estás suscrito, no recibiste una notificación de prueba, pero ves que el mensaje ha sido entregado (coloreado verde), por favor abre Chrome en chrome://gcm-internals.Haz clic en el botón “Start Recording” en la parte superior izquierda. Asegurándote de que ves “Connection State: CONNECTED”.Deja esto abierto y envíate un push (sigue el paso #4 arriba para enviarte una notificación de prueba).Deberías ver algo en el “Receive Message Log” si lo recibiste.

Logging de internals de GCM

  • Si no ves un “Data msg received”, entonces tu navegador Chrome no está recibiendo la notificación en absoluto. Por favor háznos saber sobre esto en soporte.
  • Si ves “Data msg received” pero aún no recibiste una notificación, procede al paso #4.
4

Usar chrome://serviceworker-internals para depurar service worker

Visita chrome://serviceworker-internals.Busca Scope: https://your-site.com.Haz clic en Inspect, o Start -> Inspect, como abajo. Aparecerá una ventana emergente de Chrome Developer Tools.

Inspeccionando el service worker

En la ventana emergente de Chrome Developer Tools a nuestro service worker, haz clic en la pestaña Console, y ejecuta OneSignalWorker.log.trace();. Debería devolver undefined. Cualquier mensaje de nuestro service worker ahora debería aparecer en esta ventana emergente.
5

Capturar salida de consola y contactar soporte

Regresa de la ventana emergente de Dev Tools del service worker a la consola de Herramientas de Desarrollador de tu página principal (la misma usada en el paso 2). Envíate otra notificación de prueba. Si aún no ves la notificación, revisa la salida de la consola en busca de nuevos errores o mensajes. Para compartir esta información con soporte:
  • Haz clic derecho dentro de la Consola.
  • Selecciona Save as … para exportar el archivo de log.
  • Adjunta este archivo y contáctanos en nuestro soporte por chat para asistencia adicional.
Need help?Chat with our Support team or email support@onesignal.comPlease include:
  • Details of the issue you’re experiencing and steps to reproduce if available
  • Your OneSignal App ID
  • The External ID or Subscription ID if applicable
  • The URL to the message you tested in the OneSignal Dashboard if applicable
  • Any relevant logs or error messages
We’re happy to help!