Я хочу отключить долгое касание из приложения. У меня нет контроля над HTML, который я загружаю в свой WebView.
Как отключить долгое касание в UIWebView?
Ответы (4)
В делегате webViewDidFinishLoad
я запускаю javascript на загруженной html-странице, которая отключает долгое касание.
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
для Objective-C или webView.stringByEvaluatingJavaScript(from: "document.documentElement.style.webkitUserSelect='none';")
для Swift.
- person Bejil; 28.06.2019
UIWebView больше не поддерживается. Итак, вы должны реализовать WKWebView, и есть свойство, называемое allowsLinkPreview, с помощью которого вы можете включить или отключить предварительный просмотр с длительным касанием.
webView.allowsLinkPreview = false
Вы можете попытаться переопределить следующие методы из контроллера представления:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
таким образом вы можете заменить обычное управление касаниями своей собственной реализацией.
Откройте свое представление в Interface Builder, щелкните веб-представление и снимите флажок «Взаимодействие с пользователем включено» в инспекторе атрибутов.
Если вы хотите сделать это в коде, установите для веб-представления userInteractionEnabled
собственность на NO
.