¿Cómo puedo desactivar la lupa que aparece cuando mantienes pulsado un UIWebView? No quiero deshabilitar la interacción del usuario, pero no quiero que la vista web muestre ese zoom. ¿Algunas ideas?Cómo deshabilitar la lupa en UIWebview?
Respuesta
No, la lupa está inextricablemente vinculada a la selección. Para deshabilitarlo, deberá deshabilitar la selección por completo (puede usar -webkit-user-select: none
para hacer eso).
Desafortunadamente, esto no funciona para mí. –
si una entrada/área de texto se enfoca y se desenfoca sin que el usuario toque "Listo" en el teclado, este truco ya no funcionará. (iOS 7) – vilicvane
Porque no sé cómo usar -webkit-user-select: none
busqué otras maneras. Y tropiezo en esto Customize the contextual menu of UIWebView luego lo combiné con -webkit-user-select: none
.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"];
}
'-webkit-user-select: none' es un atributo CSS. Entonces, necesitas usar el código que publicaste, o si tienes acceso al contenido web que se muestra en tu vista web, lo incluirías con tu CSS. – Ben
Como la solución aceptada no funcionó para mí, tuve que buscar otras opciones y encontré una.
Tenga en cuenta que no sé si Apple aprueba esta técnica. Úselo bajo su propio miedo y riesgo.
(La nuestra no fue rechazado; no creo de Apple se preocupa mucho acerca de que jugar con UIWebView
internos, pero se advirtió.)
lo que hice fue recurrentemente camino por UIWebView
subvistas y enumerar su gestureRecognizers
. Cada vez que encuentro un UILongPressGestureRecognizer
, configuro su enabled
en NO
.
Esto elimina por completo la lupa y, obviamente, desactiva cualquier funcionalidad predeterminada de pulsación larga.
Parece que iOS vuelve a habilitar (o vuelve a crear) estos reconocedores de gestos cada vez que el usuario comienza a editar texto.
Bueno, no me importa usar lupa en los campos de texto, así que no los desactivo inmediatamente.
En su lugar, espero el evento blur
en mis elementos de texto, y cuando ocurre, recorro nuevamente el árbol de la subvista.
Tan simple como eso, y funciona.
¿Qué diablos pasa con el voto abajo? ¿Hay algo de malo en documentar soluciones que funcionó con éxito para nosotros? –
Esto me parece legítimo. – mark
Cualquier código en swz plz? –
He encontrado que -webkit-user-select: none;
solo no hace el truco. En su lugar he encontrado una propiedad bastante indocumentado -webkit-touch-callout
Lo que suele hacer con las aplicaciones PhoneGap es la siguiente:
body, body * {
-webkit-user-select: none !important;
user-select: none !important;
-webkit-user-callout: none !important;
-webkit-touch-callout: none !important;
}
input, textarea {
-webkit-user-select: text !important;
user-select: text !important;
-webkit-user-callout: default !important;
-webkit-touch-callout: default !important;
}
En algún lugar se mencionó que -webkit-user-callout
es una versión legado de -webkit-touch-callback
, he puesto esto en tan sólo en caso.
No funciona en la aplicación phonegap. Lo he intentado con todos y cada uno de los div –
@ Mo.Ashfaq ¿con qué versión de iOS prueba? –
ios8, en iphone 5s. La información adicional es que tengo algunos elementos como h2, img dentro de mi div y apliqué esta solución a todos y cada uno de los elementos. –
Para nuestro proyecto Swift Cordova & que hice:
override init!(webView theWebView: UIWebView!)
{
super.init(webView: theWebView)
removeLoupe()
}
/**
Removes the magnifying glass by adding a long press gesture that overrides the inherent one that spawns
a the loupe by default.
*/
private func removeLoupe()
{
let views = webView?.subviews
if (views == nil || views?.count == 0)
{
return
}
let longPress = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
longPress.minimumPressDuration = 0.045
longPress.allowableMovement = 100.0
for view in views!
{
if (view.isKindOfClass(UIScrollView))
{
let subViews = view.subviews
let browser = subViews[0]
browser.addGestureRecognizer(longPress)
break;
}
}
}
/**
Hack to override loupe appearence in webviews.
*/
func handleLongPress(sender:UILongPressGestureRecognizer)
{
}
Tenga en cuenta que esta es mi clase CDVPlugin
(o más bien mi versión personalizada de la misma).
Asegúrese de que el archivo config.xml tiene:
<feature name="CustomCDVPlugin">
<param name="ios-package" value="CustomCDVPlugin" />
<param name="onload" value="true" />
</feature>
Esto asegurará que el método se llama init()
.
- 1. Deshabilitar lupa en UITextField
- 2. Cómo deshabilitar el toque prolongado en UIWebView?
- 3. Cómo deshabilitar el desplazamiento horizontal de UIWebview?
- 4. UIWebView - Cómo deshabilitar hojas de acción (UIActionSheet)?
- 5. Deshágase de la lupa en la aplicación web iOS
- 6. Desactivar lupa en UITextview
- 7. Lupa con zoom en UIImageView
- 8. Deshabilitar el botón Atrás y Adelante en UIToolBar en UIWebview
- 9. Android: ¿Cómo desactivar la lupa de selección en ICS?
- 10. efecto de lupa android
- 11. cómo llamar a SearchRequested al presionar la lupa
- 12. Cómo eliminar la memoria caché de UIWebview o dealloc UIWebview
- 13. ¿Cómo construir una lupa en WPF C# 4.0?
- 14. ¿Cómo hacer la autenticación en UIWebView correctamente?
- 15. Cómo detectar la redirección en un UIWebView
- 16. iPhone, reproduzca el efecto de lupa
- 17. tapAtPoint en la subclase UIWebView
- 18. iOS 6 lupa click-work-around
- 19. ¿cómo pones la lupa y "buscar" en el cuadro de búsqueda en stackoverflow?
- 20. Cómo borrar un UIWebView
- 21. UIWebView: ¿Puedes desactivar Javascript?
- 22. Cómo cambiar la fuente predeterminada de UIWebView
- 23. ¿Cómo implementar la Autenticación NTLM para UIWebView?
- 24. UIWebView: ¿Puedo deshabilitar la alerta de JavaScript() dentro de cualquier página web?
- 25. ¿Cómo borrar la lista anterior en UIWebview en iPhone?
- 26. Pausar la ejecución de JavaScript en UIWebView
- 27. PDF en UIWebView
- 28. Cómo deshabilitar la ordenación en jQuery.DataTables init?
- 29. ¿Cómo deshabilitar la pantalla en Commodore 64?
- 30. Cómo deshabilitar la tecla repetitiva en jQuery
¿Aún desea toques en la vista web? – Satyam