O WKWebView é o componente de navegador que a Apple introduziu no iOS 8 para substituir o UIWebView. Ele utiliza renderização multiprocesso, o que impede que a rolagem da página bloqueie o carregamento de imagens, evita que falhas afetem o processo principal e reduz o uso de memória. Após anos de refinamento, o WKWebView tornou-se estável e supera o UIWebView em desempenho, estabilidade e experiência do usuário.
Após o lançamento do iOS 12, a Apple começou a exibir avisos de descontinuação para as APIs do UIWebView. Em agosto de 2019, aplicativos que utilizavam UIWebView passaram a receber um alerta durante o envio à App Store, recomendando aos desenvolvedores a migração para o WKWebView.
Em 23 de dezembro de 2019, a Apple anunciou que a App Store deixaria de aceitar novos aplicativos baseados em UIWebView em abril de 2020 e pararia de receber atualizações para aplicativos existentes baseados em UIWebView em dezembro de 2020.
O mPaaS se adaptou ao WKWebView em duas fases para garantir a estabilidade das páginas H5 durante a transição:
Fase 1 (novembro de 2019): A baseline do mPaaS oferece suporte tanto ao UIWebView quanto ao WKWebView, permitindo uma liberação gradual (grayscale release) para a troca progressiva.
Fase 2 (março de 2020): A baseline do mPaaS remove todo o código do UIWebView. Todos os serviços H5 passam a usar o WKWebView.
A baseline 10.1.60 do mPaaS concluiu a Fase 1. Se você utiliza o H5 Container ou componentes de miniapp do mPaaS, atualize para a baseline 10.1.60 (Atualizar a baseline) e migre para o WKWebView (Usar o WKWebView).
Atualizar a baseline
Caso utilize o H5 Container ou componentes de miniapp do mPaaS, escolha a baseline adequada conforme o status de publicação do seu aplicativo.
Aplicativos já publicados na App Store antes de abril de 2020: Atualize para a baseline 10.1.60, que oferece suporte a liberação gradual e rollback. Guia de atualização oficial da versão 10.1.60.
Novos aplicativos ainda não publicados na App Store antes de abril de 2020: Utilize a versão 10.1.68, que remove todo o código do UIWebView. Execute testes de regressão completos antes da publicação. Guia de atualização do mPaaS 10.1.68-beta.
Usar o WKWebView
Por padrão, o container do mPaaS carrega páginas H5 com o UIWebView. É possível ativar o WKWebView globalmente ou por meio de uma liberação gradual.
Baseline 10.1.60
A baseline 10.1.60 inclui tanto o UIWebView quanto o WKWebView, utilizando o UIWebView como padrão. Ative a chave global do WKWebView para carregar todas as páginas com esse componente.
- (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
// Enable the global WKWebView switch
[MPNebulaAdapterInterface shareInstance].nebulaUseWKArbitrary = YES;
//...
}
Após ativar o WKWebView, verifique o User Agent (UA) da página H5. Se o UA contiver WK, a página estará utilizando o WKWebView.
Rollback
Ao ativar o WKWebView globalmente, o framework do mPaaS fornece um mecanismo de correção imediata para reverter rapidamente para o UIWebView. Adicione uma chave de configuração no componente de liberação em tempo real para restringir pacotes offline ou URLs específicas ao UIWebView.
A Configuration key é h5_wkArbitrary. Formato do Resource value:
{
"enable": true,
"enableSubView": false,
"exception": [
{
"appId": "^(70000000|20000193)$"
},
{
"url": "https://invoice[.]starbucks[.]com[.]cn/"
},
{
"url":"https://front[.]verystar[.]cn/starbucks/alipay-invoice"
}]
}
A tabela a seguir descreve os itens de configuração.
Item de configuração | Descrição | Observações | |
enable | Ativa ou desativa o WKWebView. | Padrão: | |
enableSubView | Controla o uso do WKWebView em webViews incorporadas em miniapps. | Padrão: | |
exception | appId | Páginas H5 em pacotes offline cujos appIDs correspondem a esta expressão regular são excluídas do WKWebView. | Padrão: |
url | Páginas H5 cujas URLs correspondem a esta expressão regular são excluídas do WKWebView. | ||
Baseline 10.1.68-beta
A versão 10.1.68-beta utiliza o WKWebView por padrão para pacotes offline e miniapps. Verifique o UA da página H5; se contiver WK, o WKWebView estará ativo.
Instruções
Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado
Escreva o texto em português do Brasil DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Tags xref (
<a data-tag="xref" ...>text</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, traduzindo APENAS o texto visível entre > eAplique rigorosamente todas as regras específicas do idioma
Aplique as regras de stopwords com tolerância zero
Use o modo imperativo em passos numerados e listas de procedimentos
Garanta a consistência terminológica — o mesmo termo deve ter a mesma tradução em todo o documento
Varie os inícios de frase em listas e tabelas — nenhum início deve se repetir mais de 3 vezes
Retorne APENAS o documento markdown em português do Brasil, sem explicações