我正在尝试在带有WKWebView
的链接上添加我自己的 3D 触摸实现,所以我将WKWebView
的 allowsLinkPreview
属性设置为 false
。
但是,不可能检查3D触摸是否在链接上,也不可能知道哪个链接都没有。
所以我想知道是否有办法将 allowsLinkPreview
属性设置为 true
,然后捕获 3D 触摸链接时触发的窥视事件?
这是可能的。应将allowsLinkPreview
值设置为 true
,然后实现以下方法。这两种方法都需要实现,否则将无法正常工作。
optional func webView(_ webView: WKWebView, previewingViewControllerForElement elementInfo: WKPreviewElementInfo, defaultActions previewActions: [WKPreviewActionItem]) -> UIViewController?
optional func webView(_ webView: WKWebView, commitPreviewingViewController previewingViewController: UIViewController)
就我而言,我不想创建预览视图控制器,所以我只是返回了一个SFSafariViewController
并传入我的 url。这似乎很完美。至于commitPreviewingViewController
方法,这是我放置代码以在浏览器中打开新选项卡的地方。
来源:WKWebView 中的 iOS 10 链接预览 API