Evento isLongPress - Forum

Forum Navigation
You need to log in to create posts and topics.

Evento isLongPress

Buenos días
Tengo un problemilla con una aplicación android que estoy desarrollando.
Quisiera que cuando hago clic en un botón, se ejecute una rutina y si mantengo unos segundos se ejecute otra distinta.
En el objeto botón, no encuentro un evento "longPress" o algo parecido.

Gracias por su paciencia

@tioemo

En VisualNEO Web no existe un evento "longPress" directamente para los botones. Sin embargo, puedes implementar este comportamiento utilizando un temporizador (Timer) y eventos de ratón como MouseDown y MouseUp. A continuación, te explico cómo puedes lograrlo:

Pasos para implementar "longPress" en VisualNEO Web:

  1. Agrega un temporizador:
    • Desde la paleta de herramientas, arrastra un objeto Timer a tu página.
    • Configura el intervalo del temporizador, por ejemplo, 2000 ms (2 segundos) para un "longPress".
  2. Configura el botón:
    • En el botón que quieres utilizar, programa los siguientes eventos:
      • MouseDown: Inicia el temporizador.
      • MouseUp: Detén el temporizador y ejecuta la acción para un clic normal.
  3. Lógica para el "longPress":
    • En el evento del temporizador, programa la acción para el "longPress".
    • Asegúrate de detener el temporizador después de ejecutar la acción para evitar repeticiones.

Ejemplo de NeoScript:

Configuración del temporizador:

  • Nombre del temporizador: LongPressTimer
  • Intervalo: 2000 ms
  • Acción del temporizador:
    etVar [IsLongPress] "true"
    AlertBox "LongPress" "Ejecutaste un longPress." ""
    StopTimer "LongPressTimer"
    

Eventos del botón:

  • MouseDown:
    SetVar [IsLongPress] "false"
    StartTimer "LongPressTimer"
    
  • MouseUp:

     


If [IsLongPress] = "false"
  AlertBox "Click Normal" "Ejecutaste un clic normal." ""
EndIf
StopTimer "LongPressTimer"

Explicación:

  • MouseDown inicia el temporizador y marca que aún no es un "longPress".
  • Si el usuario suelta el botón antes de que el temporizador termine (MouseUp), se ejecuta la acción de clic normal.
  • Si el temporizador llega al final, ejecuta la acción del "longPress" y establece la variable IsLongPress en true para evitar acciones duplicadas.

Este método es sencillo y funciona para implementar un comportamiento similar al "longPress" en VisualNEO Web.

Muchas gracias por su rápida respuesta.

Curiosamente la solución propuesta me funciona cuando ejecuto la aplicación en el navegador pero si la compilo, en el móvil, no funciona.

He modificado unas líneas en el código recibido:

StopTimer por TimerStop

StartTimer "LongPressTimer" por TimerStart "LongPressTimer" 2000

Un Saludo