Se você não pode (ou não quer) hospedar o Service Worker na raiz do domínio, é possível configurá-lo em um subdiretório — desde que atenda a requisitos específicos dos navegadores.

Pré-requisitos

  • Site servindo conteúdo via HTTPS
  • Acesso ao local onde o arquivo será hospedado (FTP, CMS ou backend)
  • Possibilidade de configurar headers HTTP personalizados

Passo a passo

1. Baixe o Service Worker

Faça o download do sw.js no painel da Inngage (Plataformas → Web Push → Download).

2. Hospede no subdiretório desejado

Exemplo: https://www.seudominio.com.br/notificacoes/sw.js

3. Configure o cabeçalho Service-Worker-Allowed

Por padrão, um Service Worker só controla páginas no mesmo caminho (ou abaixo) de onde está hospedado. Para que ele controle o site inteiro, inclusive a raiz, a resposta HTTP do arquivo precisa incluir:

Service-Worker-Allowed: /

Exemplo prático em PHP

<?php
header("Service-Worker-Allowed: /");
header("Content-Type: application/javascript");
echo "importScripts('https://api.inngage.com.br/v1/sw.js');";

Esse código funciona como um proxy: adiciona o cabeçalho necessário e carrega o conteúdo real do Service Worker a partir da CDN da Inngage.

Verificação final

  1. Acesse a URL do Service Worker no navegador (ex.: https://www.seudominio.com.br/notificacoes/sw.js) e confirme que o conteúdo carrega.
  2. Abra o site no Chrome e pressione F12 (DevTools).
  3. Na aba Network, recarregue a página e busque pelo arquivo do service worker.
  4. Clique no arquivo, abra a aba Headers e confirme que Service-Worker-Allowed: / está presente na resposta.