Estoy tratando de ver si hay una manera de invocar el menú contextual nativo para un enlace en iOS Safari sin que el usuario tenga que presionar prolongadamente.
(Por ejemplo, si abre nytimes.com en su iPhone y luego mantiene presionado el primer título para abrir el menú contextual del sistema, contendrá: Abrir enlace, Abrir en una nueva pestaña, Copiar enlace, etc.)
Entonces queremos invocar ESO en nuestro sitio SIN requerir que el usuario presione durante 500 ms. Idealmente, el usuario puede simplemente tocar un botón, pero cualquier alternativa a la presión prolongada sería aceptable (tocar dos veces, deslizar, tocar con dos dedos, etc.).
Este efecto definitivamente es posible dentro de una aplicación nativa con swift/obj-c. Eso no es lo que estoy buscando. Estoy tratando de lograr esto específicamente en nuestro sitio web cuando se abre en Safari en iOS.
Ya he probado:
1: ver si hay una manera de reducir el requisito de tiempo de pulsación prolongada. Si bien es posible deshabilitarlo por completo con -webkit-touch-callout , no hemos encontrado ninguna forma de reducir el tiempo. Las soluciones en Internet que se refieren a umbrales de retardo de tiempo de pulsación prolongada variables utilizan bibliotecas de terceros para crear comportamientos de pulsación prolongada no nativos, como presionar un botón para que se mueva.
2: ver si hay una manera de ignorar el evento del touchend ; en otras palabras, el usuario tocaría (~ 10 ms) y esto iniciaría un temporizador, y 490 ms después aparece el menú de llamada, mucho después de que el usuario haya quitado su dedo. Tampoco hubo suerte con esto, pero parece ser el enfoque más prometedor.
3: también probamos otras soluciones menos ideales en las que, por ejemplo, el usuario toca dos veces, primero en un elemento transparente y luego en el botón principal. No hubo suerte con eso tampoco.
¡Cualquier sugerencia (o solución completa) sería muy apreciada!
Según tengo entendido, abre su aplicación con webframe y desea cambiar una propiedad que tiene IOS. Creo que no puedes cambiar esta propiedad con javascript o css. debe crear un método que haga este trabajo con swift/obj-c, luego debería considerar activarlo a través de javascript.