Pular para o conteúdo principal

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 realmente 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.
BrowserWindowsmacOSAndroidiOS
Chrome✅ ¹
Firefox✅ ¹
Safari 10+✅ ¹
Microsoft Edge✅ ¹
Opera ²✅ ¹
Samsung Internet ²✅ ¹
Yandex ²✅ ¹
UC Browser ²✅ ¹
Internet Explorer
DuckDuckGo
¹ 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 e modos de foco do seu dispositivo (Não perturbe, Bateria fraca, etc.) podem estar bloqueando a exibição de notificações. Você também pode ter as notificações desativadas para aplicativos específicos, como os navegadores. Verifique o seguinte para garantir que seu dispositivo esteja configurado para receber notificações.
  • Windows
  • macOS
  • Android
  • 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 em 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 podem ser usadas para interagir com nosso Web SDK em sua página da web e habilitar o log para verificar erros.
  • Desktop
  • Android
  • iOS
  • 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.

Console das Ferramentas de Desenvolvedor do Desktop

2

Verifique se o OneSignal foi carregado e inicializado em sua página

No Console, execute:
JavaScript
  OneSignal.initialized
O que o resultado significa:
  • true ✅ - OneSignal está inicializado e pronto. Continue para a próxima etapa.
  • false ⚠️ - OneSignal carregou, mas ainda não terminou de inicializar. Aguarde um momento e tente novamente.
  • Uncaught ReferenceError: OneSignal is not defined ❌ - Verifique se o snippet JavaScript do OneSignal está na seção <head> do seu site. Verifique se o script carrega antes de tentar usar os métodos do OneSignal. Revise o guia de Configuração do Web SDK
  • OneSignal is already defined O SDK está sendo inicializado mais de uma vez na mesma página. Remova um método de inicialização. Se estiver usando o plugin WordPress, remova qualquer código OneSignal manual dos arquivos de tema.
3

Habilite o log do Web SDK

Agora você pode executar comandos no Console das ferramentas de desenvolvedor. Execute o seguinte código:
JavaScript
  OneSignal.Debug.setLogLevel('trace');
  • 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.

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

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 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, remova qualquer código OneSignal manual dos arquivos de tema.
Erro: Pode ser usado apenas em: (URL definida no Painel do OneSignal)

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 Configurações > Push e No Aplicativo > Web > URL do Site 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.

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: Falha no registro de um Service Worker.
[Instalação do Service Worker] Falha na instalação do service worker TypeError: Falha ao registrar um ServiceWorker para o escopo (‘https://your-site.com/’) com o script (‘https://your-site.com/...’): Um código de resposta HTTP ruim (404) foi recebido ao buscar o script.
[Instalação do Service Worker] Falha na instalação do service worker TypeError: Falha ao registrar um ServiceWorker para o escopo (‘https://www.yoursite.com/’) com o script (‘https://www.yoursite.com/...’): Um código de resposta HTTP ruim (403) foi recebido ao buscar o script.

Exemplo de erro de instalação do service worker

O script tem um tipo MIME não suportado (‘tipo MIME atual’). [Instalação do Service Worker] Falha na instalação do service worker SecurityError: Falha ao registrar um ServiceWorker para o escopo (‘https://your-site.com/’) com o script (‘https://your-site.com/…’): O script tem um tipo MIME não suportado (‘tipo MIME atual’).

Erro de tipo MIME no service worker

[Instalação do Service Worker] Falha na instalação do service worker SecurityError: Falha ao registrar um ServiceWorker para o escopo (‘https://your-site.com/’) com o script (‘https://your-site.com/…’): O recurso do script está atrás de um redirecionamento, o que não é permitido.

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

Nosso SDK procura o arquivo do service worker OneSignalSDKWorker.js no diretório raiz do seu site, a menos que você especifique um nome de arquivo ou local personalizado, conforme descrito no Guia de Configuração do Service Worker.Certifique-se de ter configurado o nome do arquivo, local e escopo corretos para que nosso SDK encontre o arquivo do service worker.
2

Visite o arquivo do service worker diretamente no seu navegador

Com base na sua configuração, abra o arquivo diretamente no seu navegador.
  • Se você não configurou um local personalizado, então você deve ver o código JavaScript do arquivo do service worker na raiz do seu site: https://yoursite.com/OneSignalSDKWorker.js
  • Se estiver usando WordPress, você deve vê-lo aqui: https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
  • Se estiver usando um local personalizado, você deve vê-lo aqui: 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
    importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
    
  • 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)
Revise o Guia de Configuração do Service Worker para obter instruções de configuração mais detalhadas.

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
  function getUserInfo() {
  	console.log('getUserInfo()');
  	Promise.all([
      OneSignal.Notifications.isPushSupported(),
  		OneSignal.Notifications.permission,
      OneSignal.User.PushSubscription.optedIn,
      OneSignal.User.PushSubscription.id
  	]).then(([
      isPushSupported,
      isSubscribed,
      isOptedIn,
      subscriptionId
    ]) => {
      console.log('The current URL of this page: ', location.href);
      console.log('Push is supported on this browser: ', isPushSupported);
      console.log('You are subscribed to notifications in the browser: ', isSubscribed);
      console.log('You are opted-in with OneSignal: ' , isOptedIn);
      console.log('Your OneSignal Subscription ID: ', subscriptionId);
    }).catch(e => {
      console.error('Error getting user info:', e);
    });
  }
  getUserInfo();
Isso lhe dirá:
  • A URL da página em que você está, caso haja alguma confusão.
  • Se o navegador atual que você está usando 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.

    Exemplo de informações do usuário

    Salve esses dados do console em um arquivo de texto e compartilhe com nossa equipe de Suporte 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 Encontrar e Definir Assinaturas 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.

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. Por favor, nos informe sobre isso no suporte.
  • 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á.

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 [email protected]Por 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!