ios - 是否可以在与 WKWebView 的链接上实现 3D Touch 的自定义行为?

标签 ios webkit wkwebview 3dtouch peek-pop

我试图在带有 WKWebView 的链接上添加我自己的 3D 触摸实现,因此我将 WKWebViewallowsLinkPreview 属性设置为错误

但是,无法检查 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 10 Link Preview API in WKWebView

关于ios - 是否可以在与 WKWebView 的链接上实现 3D Touch 的自定义行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41702822/

相关文章:

ios - 方向改变后检测 UIView 的旋转宽度/高度

ios - CGRectDivide 在 swift 3 中被弃用

javascript - window.matchMedia 即使存在媒体查询也不会改变

html - 有没有办法 catch "Received an unexpected URL from the web process:"

iphone - UITableViewCell 重用和图像重新渲染

objective-c - 如何在屏幕上显示 UIControl 的子类

用于 Mozilla 的 WebKit CSS 3

c# - Ubuntu 上 MonoDevelop 中的 Webkit

ios - WKWeb View 。 didStartProvisionalNavigation 未调用

ios - WKWebView/UIWebView 获取网站图标