是否可以在使用 WKWebView 的链接上实现 3D 触摸的自定义行为



我正在尝试在带有WKWebView的链接上添加我自己的 3D 触摸实现,所以我将WKWebViewallowsLinkPreview 属性设置为 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

最新更新