Zum Hauptinhalt springen

WKWebView

Für das iOS-Anwendungsszenario ist die Verwendung von WKWebView einer der empfohlenen Ansätze.

Nach dem Erstellen der Transaktion und dem Abrufen des Transaktionslinks wird folgende Implementierung empfohlen:

  • In Ihrem üblichen Ablauf (der Verifizierung ohne physische Karte einschließt) öffnen Sie die WKWebView mit dem über die API generierten Link;
  • Sie können dieses Öffnen nach Bedarf für Ihre App anpassen;
  • Sie überwachen, ob sich die URL geändert hat (zur redirectUrl) und schließen dann die WKWebView.

Das Öffnen einer WKWebView ist recht einfach:

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
}

Um zu steuern, wann die WKWebView geschlossen wird, kann dies wie folgt erfolgen:

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()
}
}
Hinweis

Für die korrekte Funktion sind einige Berechtigungen erforderlich, wie zum Beispiel:

  • Kamera
  • Standortermittlung

Um mehr zu erfahren, empfehlen wir, die offizielle WKWebView-Dokumentation zu lesen.