Ich möchte Long-Touch von der Anwendung deaktivieren. Ich habe keine Kontrolle über den HTML-Code, den ich in mein WebView geladen habe.Wie lange Berührung in UIWebView zu deaktivieren?
Antwort
In webViewDidFinishLoad
delegiere ich ein Javascript auf der geladenen HTML-Seite, die die lange Berührung deaktivieren.
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
Öffnen Sie Ihre Ansicht im Interface Builder, klicken Sie auf die Webansicht und deaktivieren Sie das Kontrollkästchen "Benutzerinteraktion aktiviert" im Attribut-Inspektor.
Wenn Sie dies im Code tun möchten, legen Sie die Eigenschaft userInteractionEnabled der Webansicht auf NO
fest.
Das deaktiviert alle Interaktion nicht wahr? Nicht nur lange Berührung? –
Hoppla, du hast Recht. Ich habe die Frage falsch gelesen. – winsmith
Sie könnten versuchen, die folgenden Methoden aus den View-Controller außer Kraft zu setzen:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
diese Art und Weise können Sie das übliche berührte Management mit eigener Implementierung ersetzen.
+1 Seltsam, aber großartig! –
Ich habe die gleiche Zeile hinzugefügt .. Aber es funktioniert nicht. Ich weiß nicht, was schief läuft .. :( In den meisten Links fand ich die gleiche Lösung wie oben .. – Gati
führen Sie es in "webViewDidFinishLoad". Es sollte funktionieren. – cck