Skip to main content

Visão geral

Este guia orienta você na solução de problemas da configuração do Web SDK do OneSignal. Antes de continuar, revise a Configuração do Web SDK para garantir que você concluiu todas as etapas. Os motivos mais comuns pelos quais o web push parece não estar funcionando estão relacionados às configurações de notificação do seu navegador e dispositivo:

Compatibilidade de navegadores

Os usuários podem ver solicitações de permissão da web, mas não podem se inscrever em notificações push nos modos de navegação anônima, privada ou convidado.
¹ iOS requer instalação de aplicativo web (consulte Configuração de push web para iOS)² Navegadores baseados em Chromium aparecem como “Chrome” nas análises do OneSignal

Configurações de notificação do dispositivo

As configurações de notificação do dispositivo são a causa mais comum de notificações web push não aparecerem. Verifique as seguintes configurações, incluindo modos de foco (Não perturbe, Bateria fraca, etc.), antes de investigar outras causas.
Selecione o sistema operacional correto nas abas abaixo. Você deve ver Windows, macOS, Android e iOS.
  1. Selecione Iniciar > Configurações > Notificações e Ações > Receber notificações de aplicativos e outros remetentes
  2. Certifique-se de que seu site e navegador também estejam ativados.

Configurações de notificação do Windows 10

Configurações de notificação do Windows 11:
  1. Selecione Iniciar > Configurações > Sistema > Notificações

Configurações de notificação do Windows 11

  1. Ative Notificações
  2. Desative Não perturbe (durante os testes, as notificações serão exibidas quando esta opção estiver desativada)
  3. Role para baixo até Notificações de aplicativos e outros remetentes
Windows 11 Settings showing the Notifications from apps and other senders list

Windows 11 Notificações de aplicativos e outros remetentes

  1. Certifique-se de que seus navegadores estejam ativados.

Lista de navegadores nas configurações de notificação do Windows 11

Problemas de exibição de solicitação

A seguir estão os motivos comuns pelos quais a solicitação de notificação push da web pode não ser exibida conforme esperado.
1

Confirme se uma solicitação está configurada

Revise a configuração da Solicitação de permissão da web para garantir que você configurou uma solicitação e entende os diferentes comportamentos dos navegadores.Por exemplo, alguns navegadores como o Safari exigem um gesto do usuário (clicar em um botão) antes que a solicitação nativa possa aparecer. Detalhes para cada navegador podem ser encontrados em nossa seção Solicitação de permissão da web > Solicitação de permissão nativa.
2

Verifique a compatibilidade do navegador, modo de navegação anônima, privado ou convidado

Os navegadores não permitem que os usuários se inscrevam em notificações nesses modos. É por isso que a Solicitação Deslizante pode aparecer, mas a Solicitação de Permissão nativa não será exibida.Certifique-se de estar usando um navegador e dispositivo que suporta push web.
3

Verifique as Configurações de Notificação do seu navegador

Navegue até as configurações do seu navegador e verifique a configuração de permissão de “Notificações”. Exemplo do Chrome: chrome://settings/content/notifications

Configurações de notificações do Chrome

Neste exemplo:
  • O usuário selecionou “Não permitir que sites enviem notificações”, o que impedirá a exibição da solicitação de permissão nativa. Deve mostrar “Os sites podem solicitar o envio de notificações” para permitir a exibição da solicitação de permissão nativa.
  • O usuário adicionou https://yoursite.com à lista “Não permitido enviar notificações”, o que impedirá a exibição da solicitação de permissão nativa. Isso deve ser removido da lista para permitir a exibição da solicitação de permissão nativa.
Documentação específica do navegador:
  • Chrome - Esta página explica como gerenciar notificações no Chrome acessando Configurações > Privacidade e segurança > Configurações do site > Notificações, onde você pode controlar o comportamento padrão e gerenciar permissões para sites individuais.
  • Firefox - Este guia cobre as notificações Web Push do Firefox, explicando como gerenciar permissões de notificação através de Configurações > Privacidade e Segurança > Notificações, e como controlar permissões para sites específicos através do ícone de informações do site na barra de endereços.
  • Safari - Este guia da Apple explica como personalizar notificações do Safari no Mac através de Safari > Preferências > Sites > Notificações, onde você pode gerenciar quais sites podem enviar notificações e controlar o comportamento das notificações através das Preferências do Sistema.
  • Edge - Este artigo detalha como gerenciar notificações do Edge navegando para Configurações > Privacidade, pesquisa e serviços > Permissões do site > Notificações, ou clicando no ícone de informações do site na barra de endereços.
4

Os requisitos do iOS/iPadOS não foram atendidos

Para iOS, existem alguns requisitos adicionais para solicitar aos usuários sua inscrição. Mais informações podem ser encontradas no guia Push Web Móvel para iOS/iPadOS.

Etapas de solução de problemas

Depois de verificar o acima, siga estas etapas para solucionar problemas da configuração do Web SDK do OneSignal.
1

Abra o console das ferramentas de desenvolvedor do navegador

As ferramentas de desenvolvedor do navegador permitem que você interaja com o Web SDK do OneSignal e habilite o log para verificar erros.
  • Chrome: Clique com o botão direito na página, clique em Inspecionar e clique na aba Console da janela popup que se abre.
  • Firefox: Clique com o botão direito na página, clique em Inspecionar elemento e clique na aba Console da janela popup que se abre.
  • Safari: Vá para Safari → Preferências → Avançado e certifique-se de que Mostrar menu Desenvolver na barra de menus esteja marcado. Em seguida, em sua página da web, clique com o botão direito, clique em Inspecionar elemento e clique na aba Console da janela popup que se abre.
Browser developer tools console open on a webpage

Console das Ferramentas de Desenvolvedor do Desktop

2

Habilite o log do Web SDK

Execute o seguinte comando no Console das ferramentas de desenvolvedor:
  • Você deve ver undefined como resultado.
  • Feche a aba e abra uma nova para a mesma página. Apenas atualizar não acionará todos os eventos de inicialização do SDK.
  • Você começará a ver os logs do SDK do OneSignal no Console.
Browser console showing OneSignal SDK trace-level log output

Console com logs detalhados do SDK

Erros de configuração

Você pode encontrar os seguintes erros após a inicialização do OneSignal:
Erro: SDK já inicializado
Console error showing SDK already initialized message

Erro de inicialização duplicada do SDK

O que isso significa: O código init do Web SDK do OneSignal está sendo chamado mais de uma vez, frequentemente causado pela combinação da configuração do plugin WordPress ou da integração Shopify com código manual, ou pela adição acidental do código init do OneSignal várias vezes. Como corrigir: Remova quaisquer chamadas init duplicadas. Se estiver usando o plugin WordPress ou a integração Shopify, remova qualquer código OneSignal manual dos seus arquivos.
Erro: Pode ser usado apenas em: (URL definida no Painel do OneSignal)
Console error showing site origin mismatch between dashboard URL and current page

O exemplo mostra que a URL definida no painel do OneSignal http://127.0.0.1:5501 não é a origem do site atual que você está visitando.

O que isso significa: O domínio que você está visitando atualmente não corresponde à URL do site configurada no painel do OneSignal. Como corrigir: Copie a URL do site no seu navegador e cole-a na configuração Settings > Push & In-app > Web > Site URL do painel do OneSignal. Certifique-se de que seja a origem do site usando o seguinte formato:
  • Protocolo: Deve ser https:// (para testes locais, consulte Configuração Localhost)
  • Domínio: example.com vs www.example.com
  • Subdomínio: app.example.com vs example.com
Todos os três componentes devem corresponder entre a URL real do seu site e a configuração do painel.
Erro: OneSignalSDK: The “My site is not fully HTTPS” option is no longer supported starting with version 16 (User Model) of the OneSignal SDK.
Console error showing HTTP site not supported in SDK v16

Exemplo do erro de site HTTP não suportado

O que isso significa: Seu painel do OneSignal está configurado para usar um site HTTP e você provavelmente atualizou para usar HTTPS. Usuários que se inscreveram ao usar HTTP ou a opção “My site is not fully HTTPS” estão na verdade inscritos em um subdomínio no formato https://your-label.os.tc, e não na origem real do seu site. O web push não é suportado em sites HTTP ou sites que não podem hospedar service workers. Como corrigir: Ambas as opções exigem que seus usuários se inscrevam novamente porque eles estão inscritos no subdomínio os.tc, não no seu site.
  1. Crie um novo aplicativo OneSignal e defina o novo App ID no seu código de inicialização. Isso permite que você continue enviando push do aplicativo antigo para notificar os usuários. Envie notificações informando aos usuários que o site foi atualizado e que eles devem se inscrever novamente. Oferecer um desconto ou incentivo ajuda. Defina a “Launch URL” para uma página de destino com um prompt de reinscrição (Sino, Link Personalizado ou Slide de Categoria). Consulte Prompts de permissão para mais detalhes.
  2. Mantenha o mesmo App ID usando a API Atualizar um aplicativo para atualizar chrome_web_origin e safari_site_origin para a sua origem HTTPS. Como os usuários se inscreveram no subdomínio os.tc, o navegador deles não tem permissões push para o seu domínio real. Eles serão solicitados novamente e, se se inscreverem de novo, terão duas Assinaturas de web push no mesmo navegador — causando notificações duplicadas. Para evitar duplicatas, exclua todos os assinantes atuais de web push antes de atualizar. Envie algumas notificações primeiro informando aos usuários que eles devem se inscrever novamente. Consulte Prompts de permissão para opções de prompt.

Erros de instalação do service worker

Se você receber a Solicitação de permissão nativa e clicar em “Permitir”, poderá encontrar os seguintes erros de instalação do service worker:
Y: Registration of a Service Worker failed.
[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/...’): A bad HTTP response code (404) was received when fetching the script.
[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.
Console error showing service worker registration failure with 404 or 403 response

Exemplo de erro de instalação do service worker

The script has an unsupported MIME type (‘current MIME type’). [Service Worker Installation] Installing service worker failed SecurityError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/…’): The script has an unsupported MIME type (‘current MIME type’).
Console error showing unsupported MIME type for service worker script

Erro de tipo MIME no service worker

[Service Worker Installation] Installing service worker failed SecurityError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/…’): The script resource is behind a redirect, which is disallowed.
Console error showing service worker script blocked by a redirect

Erro de redirecionamento no console

O que isso significa: Seu arquivo de service worker está configurado incorretamente. Como corrigir:
1

Encontre o caminho do seu service worker

Site Típico e Código Personalizado: o SDK procura OneSignalSDKWorker.js na raiz do seu site, a menos que você defina um caminho personalizado. Consulte Service worker do OneSignal.WordPress: não faça upload de um worker para a raiz do site nem defina um caminho personalizado. O plugin hospeda o arquivo em sdk_files. Abra essa URL na próxima etapa. Consulte Configuração do WordPress.
2

Visite o arquivo do service worker diretamente no seu navegador

Abra a URL do arquivo no seu navegador.
  • Padrão de Site Típico (raiz): https://yoursite.com/OneSignalSDKWorker.js
  • Plugin WordPress (v3): https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js (nome da pasta no WordPress.org; instalações via zip podem diferir)
  • Caminho personalizado (apenas dashboard de Site Típico ou init de Código Personalizado): https://yoursite.com/your-custom-location/OneSignalSDKWorker.js
Os nomes de arquivo diferenciam maiúsculas de minúsculas. Certifique-se de usar OneSignalSDKWorker.js ou o nome do arquivo que você configurou.Alguns servidores convertem automaticamente o nome do arquivo para minúsculas. Leve isso em consideração se não conseguir encontrar o arquivo.
3

Verifique se o arquivo carrega

  • Você deve ver o seguinte código JavaScript:
    JavaScript
  • Este arquivo deve ser servido com um content-type de application/javascript.
  • Não pode haver redirecionamentos para este arquivo. Os arquivos devem ser hospedados no mesmo domínio do seu site (sem CDN ou domínios proxy).
Site Típico e Código Personalizado: consulte Service worker do OneSignal para configuração de upload e caminho. Usuários do plugin WordPress não devem seguir esse guia. Consulte Configuração do WordPress.

Notificações não exibidas

Esta seção assume:
  1. Você revisou o guia Notificações não exibidas: Web Push para conhecer os motivos comuns pelos quais as notificações podem não estar aparecendo no seu dispositivo.
  2. Você viu a Solicitação de permissão nativa e clicou em “Permitir”. Consulte Problemas de exibição de solicitação acima se você não se inscreveu através da solicitação de permissão nativa.
Se o acima for verdadeiro, siga estas etapas para verificar seu ID de Assinatura e enviar uma notificação push para você mesmo:
1

Obtenha seu ID de Assinatura

Execute o seguinte código no console das ferramentas de desenvolvedor do navegador:
JavaScript
Isso lhe dirá:
  • A URL da página em que você está, caso haja alguma confusão.
  • Se o navegador atual suporta notificações push.
    • true significa que o navegador suporta notificações push.
    • false significa que o navegador não suporta notificações push.
  • Se você está inscrito em notificações no navegador.
    • true significa que você permitiu permissões push para esta URL.
    • false significa que você não permitiu ou negou permissões push para esta URL.
  • Se você optou por participar com o OneSignal.
    • true significa que sua Assinatura está inscrita em notificações push no OneSignal.
    • false significa que sua Assinatura não está inscrita em notificações push no OneSignal. Verifique se o método optOut() está sendo chamado no seu site.
  • Seu ID de Assinatura do OneSignal.
    • Salve isso para a próxima etapa. Este é o ID que você usará para enviar uma notificação push para você mesmo.
    Console output showing push support status, subscription state, and Subscription ID

    Exemplo de saída de informações do usuário no console

    Salve esses dados do console em um arquivo de texto e compartilhe com o Suporte do OneSignal se precisar de mais assistência.
2

Envie uma notificação para você mesmo

Se você está inscrito em notificações, optou por participar com o OneSignal e tem um ID de Assinatura, você pode enviar uma notificação para você mesmo.Siga as etapas em Usuários de teste para se definir como testador e enviar uma notificação para você mesmo.
3

Teste com o Chrome

Se você não está recebendo notificações no Chrome, use essas ferramentas de diagnóstico específicas do Chrome para identificar o problema.
  1. Em uma nova aba, abra chrome://gcm-internals.
  2. Clique no botão “Start Recording” no canto superior esquerdo. Certifique-se de ver “Connection State: CONNECTED”.
  3. Deixe isso aberto e envie outra notificação push para sua Assinatura de web push do Chrome.
  4. Você deve ver algo no “Receive Message Log” se recebeu.
Chrome GCM internals page showing Receive Message Log with a received data message

Log de internos do GCM

  • Se você não ver um “Data msg received”, então seu navegador Chrome não está recebendo a notificação de forma alguma. Entre em contato com o Suporte do OneSignal com os logs do GCM internals.
  • Se você ver “Data msg received” mas ainda não recebeu uma notificação, continue para a próxima etapa.
  1. Abra uma nova aba para chrome://serviceworker-internals
  2. Pesquise por Scope: https://your-site.com (substitua your-site.com pelo domínio real do seu site).
  3. Clique em Inspect, ou Start -> Inspect. Um popup das Ferramentas de Desenvolvedor do Chrome aparecerá.
Chrome service worker internals page showing the Inspect button for a registered service worker

Inspecionando o service worker

  1. No popup das Ferramentas de Desenvolvedor do Chrome para o nosso service worker, clique na aba Console e execute OneSignalWorker.log.trace();. Deve retornar undefined. Quaisquer mensagens do nosso service worker devem agora aparecer neste popup.
Precisa de ajuda?Converse com nossa equipe de Suporte ou envie email para support@onesignal.comPor favor inclua:
  • Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
  • Seu OneSignal App ID
  • O External ID ou Subscription ID se aplicável
  • A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
  • Quaisquer logs ou mensagens de erro relevantes
Estamos felizes em ajudar!

Perguntas frequentes

Por que vejo “SDK already initialized”?

O código init do Web SDK do OneSignal está sendo chamado mais de uma vez na página. Isso geralmente acontece ao combinar o plugin WordPress com código manual, ou quando a tag de init está incluída em vários templates de página. Remova as chamadas init duplicadas para resolver.

Posso usar web push em sites HTTP?

Não. Web push requer HTTPS porque os service workers — que cuidam da entrega do push — só funcionam em origens seguras. Se você usava anteriormente a opção “My site is not fully HTTPS”, você deve migrar para HTTPS. Consulte Erros de configuração para as etapas de migração.

Como testo web push no localhost?

Você pode testar em localhost durante o desenvolvimento. Consulte Configuração Localhost para instruções de configuração. Observe que o teste em localhost só funciona em navegadores baseados em Chromium.

Páginas relacionadas

Configuração do Web SDK

Conclua a instalação e configuração inicial do Web SDK do OneSignal.

Configuração do service worker

Configure o arquivo de service worker do OneSignal para o seu site.

Prompts de permissão

Configure como e quando solicitar permissão de web push aos visitantes.

Notificações não exibidas

Motivos comuns pelos quais as notificações web push podem não aparecer no seu dispositivo.