Como migrar a origem de um app da Web instalado

Para transferir um app da Web instalado (PWA) para uma nova origem, os usuários geralmente precisam desinstalar manualmente o app antigo e reinstalar o novo. Esse processo geralmente causa a perda da integração no nível do SO, como atalhos da barra de tarefas e permissões de notificação. A migração de origem do app da Web automatiza essa transição estabelecendo uma transferência segura entre as origens antiga e nova.

A migração é um processo de verificação em duas etapas: o novo Google Sites reivindica o antigo como predecessor, e o antigo autoriza o novo como sucessor.

Restrições importantes

Etapas de implementação

1. Verificação do status "Mesmo site"

OBRIGATÓRIO: as origens novas e antigas PRECISAM ser "Same-Site". Eles precisam compartilhar o mesmo domínio registrável (eTLD+1).

  • Permitido: migrar de app.example.com para new.example.com (ambos compartilham example.com).
  • Permitido: migrar de example.com/app1 para example.com/app2.
  • Proibido: migrar de example.com para example.org (domínios registráveis diferentes).

2. Configurar o novo aplicativo

O novo aplicativo precisa declarar o antecessor. O novo app precisa ter um id.

No manifest.json do novo site, adicione o campo migrate_from:

{
  "name": "My New App",
  "id": "/demo.html",
  "start_url": "/demo.html",
  "migrate_from": [
    {
      "id": "https://old-app.example.com/"
    }
  ]
}

3. Autorizar a migração na origem antiga

A origem antiga precisa autorizar explicitamente a migração para evitar o sequestro de origem. Crie um arquivo de configuração disponibilizado no diretório .well-known.

Local do arquivo: https://old-app.example.com/.well-known/web-app-origin-association

{
  "https://new-app.example.com": {
    "allow_migration": true
  }
}

4. Sinalizar a migração de forma proativa (opcional)

Para acionar a migração imediatamente para os usuários atuais sem esperar que eles acessem o novo Google Sites, atualize o manifesto do site antigo com uma dica migrate_to.

{
  "migrate_to": [
    {
      "id": "https://new-app.example.com/",
      "install_url": "https://new-app.example.com/demo.html"
    }
  ]
}

5. Exigir que os usuários migrem (opcional)

Por padrão, uma migração é sugerida aos usuários. Para tornar a transição obrigatória, defina behavior como force no manifesto do novo app.

{
  "migrate_from": [
    {
      "id": "https://old-app.example.com/",
      "behavior": "force"
    }
  ]
}

Observação: o behavior: "force" não exclui o app antigo sem aviso. O navegador vai mostrar ao usuário uma caixa de diálogo exigindo que ele atualize para a nova versão ou remova o app completamente.

Substitutos e suporte ao navegador

Solicitação de reinstalação manual

Nos navegadores que não são compatíveis com a migração automática, o usuário vai continuar na instalação antiga. Implemente um elemento da interface (por exemplo, um banner de notificação) na origem antiga que direcione o usuário para o novo site Google.

As configurações do usuário não serão migradas, e o app antigo não será desinstalado automaticamente.