Отключить 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. Это отключит предварительный просмотр с принудительным касанием.

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