Можно ли реализовать пользовательское поведение для 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