gpt4 book ai didi

ios - WKWebView 中的 Apple Pay JS

转载 作者:行者123 更新时间:2023-11-28 07:30:53 26 4
gpt4 key购买 nike

我正在研究是否可以在 WKWebView 中嵌入 Apple Pay JS/Web 支付 API。我们有一个嵌入 WKWebView 的网络应用程序,我们希望通过 JavaScript 在没有桥的情况下实现 Apple Pay。

我整理了一个非常基本的 ViewController.swift 示例,如下所示,利用了 Apple Pay on the Web Demo

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 按钮,但也显示了不支持设备的错误消息(见下文),并且无法点击该按钮。

enter image description here

我认为这意味着在这种情况下没有支持。我再次尝试使用 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 还很陌生,所以这可能是一个实现问题。

谢谢!

最佳答案

已编辑

引用:- https://developer.apple.com/library/archive/ApplePay_Guide/index.html#//apple_ref/doc/uid/TP40014764

上一个答案

您需要禁用 javascript 才能运行。 (可能出于安全原因,因为涉及付款)

override func loadView() {

let preferences = WKPreferences()
preferences.javaScriptEnabled = false
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
// let webview = WKWebView(frame: .zero, configuration: configuration)
// let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: configuration)
webView.uiDelegate = self
view = webView
}

关于ios - WKWebView 中的 Apple Pay JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54744893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com