Как отключить долгое касание в UIWebView?

Я хочу отключить долгое касание из приложения. У меня нет контроля над HTML, который я загружаю в свой WebView.

3 ответа

Решение

В webViewDidFinishLoad делегат Я запускаю JavaScript на загруженной HTML-странице, которая отключает длительное касание.

[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];

UIWebView больше не поддерживается. Итак, вы должны реализовать WKWebView, и есть свойство под названием allowedLinkPreview, с помощью которого вы можете включать или отключать предварительный просмотр при длительном касании.

 webView.allowsLinkPreview = false

Вы можете попробовать переопределить следующие методы из контроллера представления:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

таким образом вы можете заменить обычное управление касаниями своей собственной реализацией.

Откройте свое представление в Интерфейсном Разработчике, нажмите на веб-представление и затем снимите флажок "Взаимодействие с пользователем включено" в инспекторе атрибутов.

Если вы хотите сделать это в коде, установите свойство userInteractionEnabled веб-представления в NO,

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