</lingo>

UIWebView: Tudo o que você precisa saber

technical
Avançado

Embora ainda seja amplamente utilizado em aplicações legadas, espera-se que o uso do UIWebView diminua à medida que novas aplicações adotem WKWebView pela sua superioridade técnica. A Apple continua a incentivar os desenvolvedores a migrarem para soluções mais modernas que ofereçam melhor integração com as APIs atuais e futuras do iOS.

Futuro e Tendências

Embora ainda seja amplamente utilizado em aplicações legadas, espera-se que o uso do UIWebView diminua à medida que novas aplicações adotem WKWebView pela sua superioridade técnica. A Apple continua a incentivar os desenvolvedores a migrarem para soluções mais modernas que ofereçam melhor integração com as APIs atuais e futuras do iOS.

Casos de Uso

Os casos de uso mais comuns para UIWebView incluem a integração de conteúdo dinâmico como blogs, formulários ou sistemas de pagamento dentro da aplicação. Outro uso frequente é a visualização de documentos HTML locais armazenados na aplicação. Ao lidar com imagens locais dentro do UIWebView, é importante garantir que as URLs das imagens sejam relativas ou absolutas para o bundle da aplicação.

Comparações

Com a introdução do WKWebView, muitos desenvolvedores estão migrando de UIWebView para aproveitar as melhorias em desempenho e funcionalidades. Enquanto UIWebView ainda tem seu lugar em aplicações legadas ou cenários específicos, WKWebView oferece suporte aperfeiçoado a CSS3 e JavaScript, além de uma arquitetura mais moderna baseada em NSURLSession.

Fundamentos

O UIWebView é uma view da Apple que permite a exibição de conteúdo web dentro de uma aplicação iOS. Ele é baseado no WebKit, o mesmo motor de renderização usado pelo Safari. Para integrar um UIWebView em seu projeto, você precisa adicionar uma nova view ao seu storyboard ou código e configurá-la para carregar uma URL específica. A classe UIWebView oferece métodos para controlar o carregamento da página, avaliar o status do carregamento e interagir com o DOM da página através de JavaScript.

Introdução

O UIWebView é um componente essencial para desenvolvedores iOS que precisam integrar funcionalidades web em suas aplicações nativas. Com mais de 10.663 perguntas no Stack Overflow, é evidente que muitos desenvolvedores enfrentam desafios ao trabalhar com ele. Este artigo abrange desde os conceitos básicos até as práticas avançadas, incluindo soluções para os problemas mais populares, como abrir links no Safari e evitar o 'efeito de rebote' vertical.

Boas Práticas

Para garantir um desempenho otimizado ao usar UIWebView, evite carregar conteúdo desnecessário e minimize o uso de recursos intensivos como animações pesadas ou scripts extensos. Além disso, gerencie adequadamente o ciclo de vida do carregamento da página para evitar vazamentos de memória. Ao lidar com cookies, prefira utilizar WKWebView que oferece um controle mais refinado sobre cookies através das APIs do WebKit.

Implementação

Para implementar um UIWebView em sua aplicação iOS, você deve começar adicionando a view ao seu layout e implementando o método webView:didFinishLoadForFrame: para detectar quando a página foi carregada. Para abrir links externos no Safari, você pode interceptar os eventos de toque nos links e usar o método openURL:options:completionHandler: da classe UIApplication. Evitar o 'efeito de rebote' vertical pode ser feito ajustando as propriedades do UIScrollView que está subjacente ao UIWebView.

Exemplos de código em uiwebview

Swift
// Abre links externos no Safari
webView.delegate = self
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, decisionHandler: (Bool) -> Void) {
    if request.url?.scheme == "http" || request.url?.scheme == "https" {
        UIApplication.shared.open(request.url!, options: [:], completionHandler: nil)
        decisionHandler(false)
    } else {
        decisionHandler(true)
    }
}
Intercepta e abre links externos no Safari

❓ Perguntas Frequentes

📂 Termos relacionados

Este termo foi útil para você?