我试图在带有 WKWebView
的链接上添加我自己的 3D 触摸实现,因此我将 WKWebView
的 allowsLinkPreview
属性设置为错误
。
但是,无法检查 3D 触摸是否在链接上,也无法知道链接是什么。
所以我想知道是否有办法将 allowsLinkPreview
属性设置为 true
,然后捕捉在 3D Touching 链接时触发的 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
方法,这是我放置代码以在浏览器中打开新选项卡的地方。
关于ios - 是否可以在与 WKWebView 的链接上实现 3D Touch 的自定义行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41702822/