2

我正在尝试在链接上添加我自己的 3D 触摸实现,WKWebView因此我将我的allowsLinkPreview属性设置WKWebViewfalse.

但是,无法检查 3D touch 是否在链接上,也不可能知道哪个链接。

所以我想知道是否有办法将allowsLinkPreview属性设置为true然后捕捉在 3D 触摸链接时触发的 peek 事件?

4

1 回答 1

0

有可能的。您应该将该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方法,那是我放置代码以在浏览器中打开一个新选项卡的地方。

来源:WKWebView 中的 iOS 10 链接预览 API

于 2018-04-23T14:41:52.997 回答