Отключить 3D Touch для приложения iOS
У меня есть приложение, которое представляет веб-представления.
В этом WebViews представлены ссылки, которые я хочу обработать самостоятельно.
Все отлично работает с использованием методов делегата, но у меня есть проблема, когда пользователь использует принудительное касание. В этом случае iOS осуществляет переход к ссылке через сафари, не слушая моего делегата.
У меня вопрос: как я могу удалить принудительное прикосновение из моего приложения?
Спасибо
3 ответа
Способ удалить 3D Touch из вашего веб-просмотра -
yourWebView.allowsLinkPreview = false
Согласно этому сообщению WebKit, allowsLinkPreview
является false
по умолчанию на iOS 9 и включен по умолчанию на iOS 10+
WebKit поддерживает Peek и Pop как простой способ предварительного просмотра ссылок. В приложениях, созданных на основе iOS 10 SDK, предварительный просмотр ссылок Peek и Pop по умолчанию включен, но эта функция не нова; начиная с iOS 9, клиенты WKWebView могли выбирать предварительный просмотр ссылок на устройствах Peek на устройствах с поддержкой 3D Touch, используя свойство allowLinkPreview в WKWebView. Когда для свойства allowLinkPreview установлено значение true, пользователи могут мягко нажимать на ссылки, чтобы просмотреть их, при этом ссылка загружается в другое представление поверх приложения и размывает приложение в фоновом режиме.
попробуйте установить его на false
Я считаю, что это то, что вы ищете:
func webView(_ webView: WKWebView, shouldPreviewElement elementInfo: WKPreviewElementInfo) -> Bool {
return false
}
это метод делегата в WKUIDelegate
который был добавлен в iOS10. Это отключит предварительный просмотр с принудительным касанием.