Práticas recomendadas de desenvolvimento para aplicativos WebView2

Recomendamos as seguintes práticas recomendadas para o desenvolvimento de aplicativos WebView2 de produção.

Usar o tempo de execução Evergreen WebView2

É recomendável usar o Evergreen WebView2 Runtime para a maioria dos aplicativos WebView2, em vez de usar o runtime de Versão Fixa.

O tempo de execução Evergreen é atualizado automaticamente no cliente, para que os recursos e patches de segurança mais recentes estejam disponíveis para seu aplicativo WebView2. O tempo de execução Evergreen também requer menos espaço de armazenamento no disco do que o tempo de execução de versão fixa. A distribuição de runtime de versão fixa só é recomendada para aplicativos que têm requisitos de compatibilidade rígidos.

Consulte Evergreen vs. versão fixa do WebView2 Runtime.

Para ajudar a garantir que seu aplicativo WebView2 funcione bem com o Evergreen WebView2 Runtime, use as práticas recomendadas nas subseções abaixo:

Verifique se o WebView2 Runtime está instalado

Ao usar o Evergreen WebView2 Runtime, antes que seu aplicativo use o controle WebView2, marque programaticamente se o Evergreen WebView2 Runtime está instalado no cliente.

Consulte Detectar se um WebView2 Runtime já está instalado em Distribuir seu aplicativo e o WebView2 Runtime.

Lidar com atualizações do WebView2 Runtime

Ao usar o Evergreen WebView2 Runtime, manipule as atualizações do Evergreen WebView2 Runtime. Atualizações do Evergreen WebView2 Runtime são baixadas automaticamente, mas um aplicativo WebView2 em execução continuará usando sua versão atual do WebView2 Runtime, potencialmente sem atualizações de segurança. Para adotar a nova versão, um aplicativo deve liberar todas as referências a objetos WebView2 anteriores ou reiniciar. A implementação de um NewBrowserVersionAvailable manipulador de eventos pode solicitar que os usuários reiniciem o aplicativo para atualizações, com uma recomendação para salvar o estado do usuário antes de sair para uma transição perfeita.

Consulte Lidar com atualizações Evergreen do WebView2 Runtime em Distribuir seu aplicativo e o WebView2 Runtime.

Fazer testes de compatibilidade direta usando os canais de visualização do Edge

Ao usar o Evergreen WebView2 Runtime, execute testes de compatibilidade direta usando os canais de visualização do Microsoft Edge (Beta, Dev ou Canary).

Como o Evergreen Runtime é atualizado automaticamente, você deve executar regularmente testes de compatibilidade para garantir que seu aplicativo WebView2 continue funcionando conforme o esperado na nova versão do Runtime. Isso pode ser feito testando o conteúdo da Web no controle WebView2 nos canais de visualização do Microsoft Edge.

Siga as diretrizes em Testes de pré-lançamento usando canais de visualização e Auto-hospedar implantando canais de visualização.

Usar a detecção de recursos para APIs mais recentes

Ao usar o Evergreen WebView2 Runtime, use a detecção de recursos para testar se o Runtime instalado dá suporte a APIs adicionadas recentemente. Para executar um aplicativo WebView2 que foi desenvolvido com uma versão específica do SDK do Webview2, o cliente deve ter uma versão compatível do WebView2 Runtime instalada.

Ao usar o Evergreen WebView2 Runtime, há alguns cenários em que o runtime em um cliente não foi atualizado automaticamente para a versão mais recente. Além disso, algumas políticas de grupo pausam a atualização do tempo de execução. Como resultado, quando você envia uma atualização por push para seu aplicativo WebView2, o aplicativo pode não funcionar se tentar chamar APIs mais recentes que não estão disponíveis no runtime instalado do cliente. Portanto, você deve usar a detecção de recursos para garantir que as APIs mais recentes usadas pelo seu aplicativo WebView2 sejam compatíveis com o WebView2 Runtime instalado no cliente.

Consulte Detecção de recursos para testar se o Runtime instalado dá suporte a APIs adicionadas recentemente em SDKs de pré-lançamento e lançamento para WebView2.

Atualize regularmente se estiver usando o Runtime de Versão Fixa

Se você usar o WebView2 Runtime de Versão Fixa, atualize regularmente o WebView2 Runtime que acompanha seu aplicativo para reduzir os riscos de segurança. Para determinar com que frequência você deve atualizar o Runtime de Versão Fixa, considere o modelo de ameaça do seu aplicativo. Por exemplo, ao usar conteúdo de terceiros em aplicativos Webview2, sempre considere o conteúdo como não confiável.

Confira:

Gerenciar o tempo de vida da pasta de dados do usuário

Os aplicativos WebView2 criam uma pasta de dados do usuário para armazenar dados como cookies, credenciais e permissões. Depois de criar a pasta de dados do usuário, seu aplicativo é responsável por gerenciar o tempo de vida da pasta de dados do usuário. Por exemplo, seu aplicativo deve fazer a limpeza quando o aplicativo for desinstalado.

Confira:

Lidar com falhas ou saídas de processos de runtime

Os aplicativos WebView2 são suportados por uma coleção de processos de tempo de execução que são executados junto com o processo do aplicativo. Esses processos de tempo de execução de suporte podem falhar por vários motivos, como ficar sem memória ou ser encerrado pelo usuário. Seu aplicativo WebView2 deve lidar com esses eventos relacionados ao processo, para garantir que o aplicativo possa se recuperar de falhas e continuar a funcionar sem problemas.

Consulte Manipulação de eventos relacionados ao processo no WebView2.

Manipuladores de eventos no objeto de ambiente

Se qualquer um dos manipuladores de eventos do aplicativo no CoreWebView2Environment objeto contiver uma referência ao objeto de ambiente e o aplicativo simplesmente liberar a referência ao ambiente e aos manipuladores de eventos sem remover os manipuladores de eventos, poderá haver uma referência circular entre o objeto de ambiente e os objetos manipuladores, o que vazará memória.

Para evitar esse vazamento de memória:

  • Para qualquer manipulador de eventos adicionado, remova o manipulador de eventos antes de liberar o objeto de ambiente.

  • Evite manter uma referência ao objeto de ambiente em um manipulador de eventos. Em vez disso, o manipulador de eventos pode acessar o objeto de ambiente a sender partir do argumento do retorno de chamada "evento concluído".

  • Se você quiser que o aplicativo mantenha uma referência a um objeto WebView2, use uma referência fraca sempre que possível.

Siga as práticas recomendadas de segurança

O WebView2 permite hospedar conteúdo da Web em seus aplicativos nativos, fornecendo vantagens como usar a interface do usuário baseada na Web, acessar recursos da plataforma Web e compartilhar código entre plataformas.

No entanto, hospedar conteúdo da web também pode introduzir vulnerabilidades. Para evitar vulnerabilidades que podem surgir da hospedagem de conteúdo da Web em um aplicativo nativo, certifique-se de projetar seu aplicativo WebView2 para monitorar de perto as interações entre o conteúdo da Web e o aplicativo host.

Siga as diretrizes em Desenvolver aplicativos WebView2 seguros.

Confira também

Referência do WebView2:

Documentação do Microsoft Edge Enterprise: