import WebKit
class VirtualAccountsViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let config = WKWebViewConfiguration()
config.allowsInlineMediaPlayback = true
config.mediaTypesRequiringUserActionForPlayback = []
// Enable camera access for photo ID capture and selfie
config.preferences.javaScriptEnabled = true
config.websiteDataStore = WKWebsiteDataStore.default() // persistent cookies & localStorage
webView = WKWebView(frame: .zero, configuration: config)
webView.uiDelegate = self
view = webView
}
func loadSession(sessionKey: String) {
let url = URL(string: "https://va.meridianpay.com?sessionKey=\(sessionKey)")!
webView.load(URLRequest(url: url))
}
// Required to allow camera permission prompts inside the WebView
func webView(_ webView: WKWebView,
requestMediaCapturePermissionFor origin: WKSecurityOrigin,
initiatedByFrame frame: WKFrameInfo,
type: WKMediaCaptureType,
decisionHandler: @escaping (WKPermissionDecision) -> Void) {
decisionHandler(.grant)
}
}