Я смотрю, возможно ли встроить API Apple Pay JS / Web Payments в WKWebView.У нас есть веб-приложение, встроенное в WKWebView, и мы хотели бы реализовать Apple Pay без моста через JavaScript.
Я собрал очень простой ViewController.swift
пример, как показано ниже, используя Apple Pay в Интернете Демонстрация
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string:"https://applepaydemo.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
}
Кнопка Apple Pay отображается, но также отображается сообщение об ошибке для неподдерживаемого устройства (см. Ниже), и кнопка может «t быть нажатым.
Я предположил, что это означало, что в этом контексте не было никакой поддержки.Я попытался снова, используя SFSafariViewController
, и кнопка отображается и запускает Apple Pay при нажатии.Короче говоря - все работает отлично.
import UIKit
import SafariServices
class ViewController: UIViewController, SFSafariViewControllerDelegate {
override func viewDidAppear(_ animated: Bool) {
let safariVC = SFSafariViewController(url: URL(string:"https://applepaydemo.apple.com")!)
self.present(safariVC, animated: false, completion: nil)
}
}
Мне интересно, есть ли проблема с тем, как я реализовал это для WkWebView, или есть ошибка.Может показаться, что либо кнопка появилась, либо кнопка не работает, это ошибка.Очевидно, что на одном уровне он считает, что WkWebView совместим, но не на другом.Кажется вероятным, что об этой ошибке сообщают, но я довольно новичок в Swift, так что это может быть проблема с реализацией.
Спасибо!