我正在尝试在链接上添加我自己的 3D 触摸实现,WKWebView
因此我将我的allowsLinkPreview
属性设置WKWebView
为false
.
但是,无法检查 3D touch 是否在链接上,也不可能知道哪个链接。
所以我想知道是否有办法将allowsLinkPreview
属性设置为true
然后捕捉在 3D 触摸链接时触发的 peek 事件?
有可能的。您应该将该allowsLinkPreview
值设置为true
,然后实现以下方法。这两种方法都需要实现,否则它将不起作用。
optional func webView(_ webView: WKWebView, previewingViewControllerForElement elementInfo: WKPreviewElementInfo, defaultActions previewActions: [WKPreviewActionItem]) -> UIViewController?
optional func webView(_ webView: WKWebView, commitPreviewingViewController previewingViewController: UIViewController)
就我而言,我不想创建一个 previewViewController 所以我只是返回一个SFSafariViewController
并传入我的 url。这似乎工作得很好。至于commitPreviewingViewController
方法,那是我放置代码以在浏览器中打开一个新选项卡的地方。