Можно ли реализовать пользовательское поведение для 3D Touch на ссылках с WKWebView?

Я пытаюсь добавить собственную реализацию 3D Touch для ссылок с WKWebView поэтому я установил allowsLinkPreview собственность моего WKWebView в false,

Но тогда невозможно проверить, было ли 3D Touch на ссылке, и невозможно узнать, какая ссылка тоже.

Так что мне интересно, есть ли способ установить allowsLinkPreview собственность на true а затем поймать случайный просмотр, который срабатывает, когда 3D трогает ссылку?

1 ответ

Это возможно. Вы должны установить 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 в WKWebView

Другие вопросы по тегам