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.comparanew.example.com(ambos compartilhamexample.com). - Permitido: migrar de
example.com/app1paraexample.com/app2. - Proibido: migrar de
example.comparaexample.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.