O OneSignal service worker (Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
OneSignalSDKWorker.js) é um arquivo JavaScript hospedado em seu servidor, necessário para notificações push web. Ele permite que seu site receba e exiba notificações, mesmo quando o usuário não está na sua página.

Configuração do service worker
Crie um arquivoOneSignalSDKWorker.js dedicado para notificações push do OneSignal. Se seu site já possui um service worker e você deseja usar um único arquivo, consulte Combinar múltiplos service workers.
Baixar ou criar o OneSignalSDKWorker.js
OneSignalSDKWorker.js com a seguinte linha de código:onesignalsdkworker.js). Nesse caso, substitua OneSignalSDKWorker.js neste guia pelo nome do seu arquivo.Fazer upload para seu servidor web
OneSignalSDKWorker.js em seu servidor de forma que seja acessível publicamente via HTTPS. O arquivo não deve exigir autenticação ou login para acesso.Recomendado: Hospede o arquivo em um subdiretório dedicado que nunca servira páginas, como /push/onesignal/. Isso evita conflitos com outros service workers em seu site (p. ex., um service worker de PWA ou AMP) e mantém o caminho URL estável.- Exemplo:
https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
https://yoursite.com/OneSignalSDKWorker.js). Você pode fazer upload do arquivo para o diretório raiz, mas pode entrar em conflito com outros service workers que precisam do escopo raiz. Por exemplo, se você usa uma PWA, coloque o OneSignalSDKWorker.js em um subdiretório.Verificar se o arquivo está acessível
https://yoursite.com/push/onesignal/OneSignalSDKWorker.js).Você deve ver a linha importScripts da Etapa 1:
Configurar o caminho do SDK (apenas subdiretório)
Configuração típica de site
- No painel do OneSignal, acesse Configurações > Push & In-App > Configurações web.
- Em Configurações avançadas de push, habilite Personalizar caminhos e nomes de arquivo do service worker.

| Campo | Descrição | Exemplo |
|---|---|---|
| Path to service worker files | Diretório onde OneSignalSDKWorker.js está hospedado. | /push/onesignal/ |
| Service worker filename | Nome do arquivo .js. | OneSignalSDKWorker.js |
| Service worker registration scope | Caminho URL que o service worker controla. Deve estar no diretório ou abaixo onde o arquivo está hospedado. Use um caminho que nunca sirva páginas voltadas ao usuário. | /push/onesignal/ |
Configuração de código personalizado
PasseserviceWorkerPath e serviceWorkerParam na sua chamada OneSignal.init():| Parâmetro | Descrição | Exemplo |
|---|---|---|
serviceWorkerPath | Caminho relativo da raiz do site até o arquivo .js (sem barra inicial). | "push/onesignal/OneSignalSDKWorker.js" |
serviceWorkerParam.scope | Caminho URL que o service worker controla. Deve estar no diretório ou abaixo onde o arquivo está hospedado. Use um caminho que nunca sirva páginas voltadas ao usuário. | "/push/onesignal/" |
Revisar os requisitos do service worker
OneSignalSDKWorker.js deve atender a todos os requisitos a seguir. Se algum não for atendido, as notificações push não funcionarão.| Requisito | Detalhes |
|---|---|
| Acessível publicamente | Acesse a URL do arquivo em um navegador e confirme que você vê o código JavaScript. |
| Tipo de conteúdo correto | O servidor deve retornar Content-Type: application/javascript; charset=utf-8. |
| Mesma origem | O arquivo deve ser hospedado no mesmo domínio que seu site. CDNs e subdomínios não são permitidos. Consulte MDN: Registering your worker. |
| HTTPS | Service workers requerem um contexto seguro. localhost é a única exceção durante o desenvolvimento. |
Configuração do Web SDK
Combinar múltiplos service workers
Cada arquivo service worker em seu site é registrado em um escopo — um caminho URL que determina quais páginas ele controla. Apenas um service worker pode estar ativo em um dado escopo. Se você já tem um service worker (por exemplo, uma PWA ou worker de cache) e quer que o OneSignal compartilhe o mesmo arquivo, você pode combiná-los. Para combinar, adicione a linhaimportScripts do OneSignal ao seu arquivo service worker existente:
Guia de migração
Esta seção é para clientes existentes do OneSignal que precisam alterar o caminho do arquivo service worker, o nome de arquivo ou o escopo. Não siga estas etapas a menos que você tenha uma razão específica para alterar sua configuração atual.Quando e como migrar seu service worker
Quando e como migrar seu service worker
- O OneSignal service worker com escopo raiz entra em conflito com um Progressive Web App (PWA)
- O service worker entra em conflito com AMP ou outro service worker de cache
- Políticas de segurança proíbem código de service worker de terceiros no escopo raiz
OneSignalSDKWorker.js contém apenas:serviceWorkerParam conforme descrito na Etapa 4: Configurar o caminho do SDK. Nenhuma outra alteração é necessária.Se o seu arquivo contém OneSignal + outro códigoSeu service worker pode incluir chamadas importScripts adicionais (p. ex., ao seguir o guia Combinar múltiplos service workers). Se sua configuração atual ainda funciona, mantenha-a como está — separar um service worker mesclado requer um rollout em duas fases.Se você precisar separá-los:Adicionar um comentário de retenção ao arquivo existente
importScripts do OneSignal em seu service worker atual, adicione:Criar um novo service worker dedicado do OneSignal
OneSignalSDKWorker.js em um subdiretório (p. ex., /push/onesignal/) contendo apenas:Atualizar a configuração do OneSignal
OneSignal.init() conforme descrito na Etapa 4: Configurar o caminho do SDK.Aguardar a migração dos assinantes
Limpeza
importScripts do OneSignal do arquivo service worker original.Criar o novo arquivo na nova localização
OneSignalSDKWorker.js (ou o nome de arquivo escolhido) no novo diretório com:Atualizar a configuração do OneSignal
Aguardar a migração dos assinantes
Limpeza
Problemas comuns
Por que meu service worker retorna 404?
O arquivo não está na URL que o SDK espera. Acesse a URL completa do arquivo no seu navegador para confirmar que está acessível. Se você colocou o arquivo em um subdiretório, verifique seserviceWorkerPath (código personalizado) ou a configuração de caminho do painel corresponde à localização real do arquivo — incluindo o diretório e o nome de arquivo.
Por que as notificações não aparecem após eu mover o arquivo service worker?
Os assinantes existentes ainda referenciam a URL antiga do service worker. O navegador busca a URL registrada (com cache de até 24 horas) cada vez que um push chega. Se a URL antiga retornar 404, esses assinantes não recebem notificações. Continue hospedando o arquivo antigo por pelo menos um ano enquanto os assinantes migram naturalmente ao revisitar seu site. Consulte o guia de migração e o guia Notificações push web não exibidas.Posso hospedar o service worker em um CDN ou subdomínio?
Não. Os navegadores exigem que os service workers sejam servidos da mesma origem que a página que os registra. O arquivo deve estar no seu domínio principal — não em um CDN, subdomínio ou domínio diferente.Por que minha PWA entra em conflito com o OneSignal service worker?
Ambos provavelmente estão registrados no escopo raiz (/) e apenas um service worker pode ser registrado em um escopo específico. Mova o OneSignal service worker para um escopo de subdiretório (p. ex., /push/onesignal/) para que sua PWA mantenha o controle do escopo raiz, ou combine os service workers conforme descrito em Combinar múltiplos service workers.
Posso renomear o arquivo OneSignalSDKWorker.js?
Sim. Se seu servidor exige uma convenção de nomenclatura específica (p. ex., tudo em minúsculas), você pode renomear o arquivo para algo comoonesignalsdkworker.js. Nesse caso, atualize o nome de arquivo na sua configuração do OneSignal — no campo Service worker filename no painel ou no parâmetro serviceWorkerPath na sua chamada OneSignal.init(). Consulte a Etapa 4 para mais detalhes.
Qual tipo de conteúdo meu servidor deve retornar para o arquivo service worker?
O servidor deve retornarContent-Type: application/javascript; charset=utf-8. Algumas configurações de servidor ou CDN podem retornar um tipo MIME incorreto, o que faz o navegador rejeitar o registro do service worker.