Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Implementar o WKNavigationDelegate em Aplicações iOS

No desenvolvimento de aplicações iOS que utilizam WebViews, o WKNavigationDelegate é uma ferramenta essencial para gerenciar a navegação e responder a eventos dentro da WKWebView. Este artigo técnico irá guiá-lo através do processo de implementação do WKNavigationDelegate em suas aplicações iOS, fornecendo exemplos práticos e explicações detalhadas.

O que é WKNavigationDelegate?

WKNavigationDelegate é um protocolo que permite ao desenvolvedor gerenciar a navegação de uma WKWebView. Com ele, você pode interceptar e responder a eventos de navegação, como o início e o fim de um carregamento de página, falhas de navegação, e decisões de política de navegação.

Implementando o WKNavigationDelegate

Para implementar o WKNavigationDelegate, siga os passos abaixo:

  1. Importe o WebKit Framework: Primeiro, você precisa importar o framework WebKit no seu arquivo de código.

    import WebKit
  2. Configure a WKWebView: Crie e configure uma instância de WKWebView.

    class ViewController: UIViewController {
    
       var webView: WKWebView!
    
       override func viewDidLoad() {
           super.viewDidLoad()
    
           let webConfiguration = WKWebViewConfiguration()
           webView = WKWebView(frame: .zero, configuration: webConfiguration)
           webView.navigationDelegate = self
           view.addSubview(webView)
    
           // Configure Auto Layout constraints if needed
           webView.translatesAutoresizingMaskIntoConstraints = false
           NSLayoutConstraint.activate([
               webView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
               webView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
               webView.topAnchor.constraint(equalTo: view.topAnchor),
               webView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
           ])
    
           // Load a URL
           if let url = URL(string: "https://www.apple.com") {
               let request = URLRequest(url: url)
               webView.load(request)
           }
       }
    }
  3. Conformar ao Protocolo WKNavigationDelegate: Faça sua classe conformar ao protocolo WKNavigationDelegate e implemente os métodos necessários.

    extension ViewController: WKNavigationDelegate {
    
       func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
           print("Started loading")
       }
    
       func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
           print("Finished loading")
       }
    
       func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
           print("Failed to load with error: \(error.localizedDescription)")
       }
    
       func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
           let url = navigationAction.request.url
           print("Navigating to: \(String(describing: url))")
    
           // Allow the navigation
           decisionHandler(.allow)
       }
    }

Explicação dos Métodos

  • didStartProvisionalNavigation: Chamado quando a navegação começa.
  • didFinish: Chamado quando a navegação termina com sucesso.
  • didFail: Chamado quando a navegação falha.
  • decidePolicyFor: Permite decidir se a navegação deve continuar ou ser cancelada.

Conclusão

Implementar o WKNavigationDelegate em suas aplicações iOS é um processo direto que oferece um controle significativo sobre a navegação dentro de uma WKWebView. Esta funcionalidade é crucial para criar uma experiência de usuário mais robusta e personalizada.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.