Unico IDPay - DevCenter
HomepageAutenticaçãoAPI Reference
Portuguese (Brazil)
Portuguese (Brazil)
  • Introdução
  • Sobre o IDPay
    • Unico IDPay
    • Funcionalidades
    • Casos de uso
    • Chargeback
  • Integração
    • Visão geral
    • Autenticação
      • Criando uma Conta de Serviço
      • Preparando para fazer uma requisição autenticada à API
      • Recursos adicionais
        • Exemplo em Javascript
        • Erros de autenticação
        • Postman Collection
    • APIs
      • API Reference
        • Transações de pagamento
        • Chargeback
        • Onboarding de cartão de crédito
      • Erros
      • Enumerados
    • Webhook
    • Controlando a experiência
      • Visão Geral
      • Requisitos
      • Mobile
        • Android
        • Flutter
        • iOS
          • WKWebView
          • ASWebAuthenticationSession
      • Web
        • SDK
        • Redirect (deprecated)
    • Personalizações
  • HELP & FAQ
    • Boas práticas de comunicação
    • FAQ
    • Central de ajuda
Powered by GitBook

Copyright © 2024 unico. All rights reserved.

On this page

Was this helpful?

Export as PDF
  1. Integração
  2. Controlando a experiência
  3. Mobile
  4. iOS

WKWebView

Nesta seção, você encontrará como implementar a webview no iOS utilizando o WKWebView


Para o cenário de uso em iOS, o uso do WKWebView é uma das maneiras recomendadas.

Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:

  • Em seu fluxo comum (que está inserido o IDPay), você irá abrir a WKWebView com o link gerado via API;

  • Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;

  • Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a WKWebView;

Para abrir uma WKWebView é bem simples:

import UIKit
import WebKit
import SafariServices

var webView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    self.view.backgroundColor = .white
}

@IBAction func open(_ sender: Any) {
    createWKWebViewFull()
}

func createWKWebViewFull() {
    webView = WKWebView(frame: self.view.bounds, configuration: getWKWebViewConfiguration())
    webView.navigationDelegate = self
    view.addSubview(webView)
    self.loadUrl()
}

func loadUrl() {
    if let url = URL(string:"<URL_TO_LOAD>") {
        webView.load(URLRequest(url: url))
        webView.allowsBackForwardNavigationGestures = true
    }
}

private func getWKWebViewConfiguration() -> WKWebViewConfiguration {
    let config = WKWebViewConfiguration()
    config.allowsInlineMediaPlayback = true
    config.mediaTypesRequiringUserActionForPlayback = []

    return config
}

Para controlar quando é necessário fechar o WKWebView pode ser feito da seguinte maneira:

func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
    if let currentURL = webView.url {
        print("URL changed to: \(currentURL.absoluteString)")
        if currentURL.absoluteString == "<URL_TO_OBSERVER>" {
            closeWebView()
        }
    }
}

@objc func closeWebView() {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
        self.webView.removeFromSuperview()
    }
}

Exemplo de como deverá ficar no app:

É necessário algumas permissões para funcionar corretamente, tais como:

  • Câmera;

  • Geolocalização.

Para saber mais sobre, recomendamos uma leitura nos seguintes artigos e documentações:


PreviousiOSNextASWebAuthenticationSession

Last updated 1 month ago

Was this helpful?

Para acessar a documentação oficial, clique .

Dúvidas?

Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .

aqui
​
Central de Ajuda