Evitar iOS Webkit Long Press en Link

En una aplicación de iOS que estoy desarrollando, muestro una UIWebView para permitir al usuario actualizar su count. La página contiene enlaces para mostrar al usuario otras informaciones, pero mantiene su dedo en el enlace, aparecerá un menu como este: introduzca la descripción de la imagen aquí

Como puede ver, revela la URL de la página y la acción que se realizará, que no quiero que vea el usuario, ya que no quiero que puedan copyr nada, ya que deshabilité el "Copiar / Cortar / Pegar "ya. ¿Cómo voy a desactivar este menu también?

Gracias por cualquier consejo.

Creo que puedes deshabilitar esa window emergente al establecer la -webkit-touch-callout CSS -webkit-touch-callout en none en el enlace. Haría esto editando el file HTML o CSS que está cargando, sin usar Objective-C.

Lo que quiere hacer, como ya lo indicó Rob , es deshabilitar el menu contextual pnetworkingeterminado de UIWebView . Puede lograrlo agregando la siguiente línea a webViewDidFinishLoad:

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

Si desea deshabilitar tanto la selección emergente Y la selección de text del usuario en su PÁGINA HTML COMPLETA , use esto en el CUERPO de su página web o css global.

  body { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 

¡No es necesario decirle al browser que tiene un enlace y forzarle a no comportarse como uno!

¡Acaba de eliminar completamente el href="void(0)" !

Sus ontouchend o onclick seguirán funcionando .


Si desea volver a ver el color azul / subrayado normal, puede agregar este css:

 a .originalLink { color: blue; text-decoration: underline; cursor: pointer; } 

Esto ahorra una gran cantidad de ciclos de CPU, especialmente cuando hay cientos de enlaces en la página mientras que el usuario tiene un desplazamiento suave.

También puedes extender esto a las URL normales al usar esto:

 <a class="originalLink" onclick="location.href='http://mylink';">Real URL Link</a> 

Por supuesto, su SEO está fuera de la window, pero para una situación de aplicación web mobile específica , esto puede ser crucial.

¡Feliz encoding!