Guía para desarrolladores de sistemas Ultrabook™ y tabletas táctiles para Windows*

Descargue el artículo

Descarga de Guía para desarrolladores de sistemas Ultrabook™ y tabletas táctiles para Windows* [PDF 958,6 KB]

Contenido

Resumen

Esta guía contiene información sobre las API que los desarrolladores de aplicaciones necesitan cuando desarrollan aplicaciones destinadas a sistemas Ultrabook™. Contiene información para el desarrollo de aplicaciones que se ejecutan en Windows* 7, Escritorio de Windows* 8, interfaz de usuario de Windows* Modern, así como aplicaciones que se ejecutan en navegadores de la web.

Además, esta guía proporciona descripciones de las expectativas de usuario populares para los gestos y algunas instrucciones para desarrollar interfaces táctiles satisfactorias.

Introducción

Ahora que existen muchos sistemas Ultrabook™ con capacidades táctiles, los desarrolladores de software desean crear software diseñado para entradas táctiles. Para que una aplicación se considere plenamente habilitada para funciones táctiles, debe cumplir con tres criterios:

  • Los controles que se utilizan con mayor frecuencia miden al menos 40X40 píxeles, lo suficientemente grandes para que una huella digital los indique de forma única.
  • Se admiten los gestos relevantes (panorámico, zoom, rotación, pulsar con dos dedos, presión y pulsar) y el efecto resultante en el punto de contacto.
  • La aplicación proporciona una respuesta visual suave durante la vista panorámica, el uso de zoom y la rotación de manera que se siente muy interactiva.

Esta guía ayudará a los desarrolladores cuando escriban una nueva aplicación o cuando actualicen una existente para incluir compatibilidad con funciones táctiles.

Para obtener más información sobre cómo escribir aplicaciones habilitadas para funciones táctiles, consulte el artículo de MSDN, Touch Interaction Design (Diseño para interacción táctil).

Requisitos de hardware

Los consumidores pueden escoger entre varios dispositivos con capacidades táctiles. Los desarrolladores enfrentan una tarea desafiante cuando intentan desarrollar aplicaciones que se sienten naturales en todos los dispositivos. En términos generales, las aplicaciones habilitadas para capacidades táctiles deben ejecutarse en cualquiera de los dispositivos de destino y, al mismo tiempo, aprovechar plenamente las capacidades táctiles de cada uno de ellos. Los sistemas Ultrabook representan un nivel elevado de la capacidad táctil y debe constituir el objetivo del diseño para la interfaz táctil de una aplicación.

Los sistemas Ultrabook con pantallas táctiles han estado disponibles a la venta desde el año 2011:

  • la segunda generación de la familia de procesadores Intel® Core™ (con el nombre código de Sandy Bridge). Estos sistemas se introdujeron con Windows 7 y algunos tienen pantallas táctiles.
  • La tercera generación de la familia de procesadores Intel® Core™ (con el nombre código de Ivy Bridge). Estos sistemas también se introdujeron primero con Windows 7, pero ahora se venden con Windows 8. Veremos más de estas capacidades táctiles en el año 2013 y posteriormente, especialmente porque muchos de los diseños más recientes son convertibles.

El resto de esta Guía para desarrolladores asume que la plataforma de destino es un sistema Ultrabook con capacidades táctiles. El software diseñado para este dispositivo puede adaptarse a otros dispositivos habilitados para capacidades táctiles que se ejecutan en el mismo sistema operativo.

Entornos operativos para sistemas Ultrabook

El diseño de aplicaciones modernas requiere consideraciones cuidadosas sobre qué utilizan más los consumidores de entornos así como cuál es el entorno ideal para una aplicación. Ya sea que una aplicación esté destinada a un Escritorio de Windows 8 o una aplicación en Tienda Windows, el desarrollador necesita comprender qué interfaces se aplican.

Si una aplicación está destinada a la interfaz de usuario de Windows 8 (también conocida como una aplicación de Tienda Windows), entonces debe utilizan las API de WinRT. Si una aplicación va a ejecutarse en el entorno de Escritorio de Windows 8, existen más opciones: las API legadas de Windows 7 y las nuevas API de Windows 8 para táctiles. Estas interfaces se describirán más detalladamente en las secciones a continuación. Existen otras opciones para el desarrollo de aplicaciones para la web. Las interfaces táctiles disponibles para navegadores de la web también se describirán a continuación.

Interacciones táctiles: Puntero, gestos y manipulación

Existen diversos niveles de interpretación para las entradas táctiles. Los eventos del puntero son los más básicos debido a que representan puntos individuales de contacto táctil. Los eventos de gestos y manipulación se construyen en base a ese cimiento. Los eventos de gestos proporcionan una manera sencilla de captar gestos de pulsar y sostener. Los eventos de manipulación son para interacciones táctiles que utilizan gestos físicos para emular la manipulación física de los elementos de la interfaz de usuario. Los eventos de manipulación proporcionan una experiencia más natural debido a que el usuario interactúa con los elementos de la pantalla. Las interfaces táctiles disponibles tienen diversos niveles de compatibilidad para estos tres niveles de interpretación.

Obtenga más información sobre gestos, manipulaciones e interacciones en MSDN

Interacciones del puntero

Un evento de puntero es una sola entrada única o “contacto” desde un dispositivo de entrada tal como un ratón, un estilete estilográfico (stylus), un solo dedo o varios dedos. Cuando se establece un contacto, el sistema crea un puntero donde se detecta primero y luego se destruye cuando el puntero sale de la zona de detección o cuando se cancela. En caso de una entrada multitáctil, cada contacto es un puntero único. La Tabla 1 ilustra las interfaces para eventos de recuperación del puntero básico que están disponibles para sistemas Ultrabook que se ejecutan en Windows 7 y Windows 8.

Tabla 1. Las API de puntero disponibles para sistemas Ultrabook

Compatibilidad de sistema operativo Interfaz táctil Descripción

Windows* 7 (escritorio)

WM_TOUCH

  • También compatible con el entorno de Escritorio de Windows 8.
  • Cantidad máxima de pulseos táctiles simultáneos limitada por el hardware.
  • Sin reconocimiento de gestos incorporado.
  • Debe llamar RegisterTouchWindow debido a que los mensajes WM_TOUCH no se envían de manera predeterminada.

Solo Windows 8 (escritorio)

WM_POINTER

  • Se aplica solo al entorno de Escritorio de Windows 8.
  • De manera predeterminada, se generan las animaciones y respuestas de interacciones de Windows 8 y están disponibles para procesos adicionales.

Interfaz de usuario de Windows Modern

PointerPoint

  • Se aplica solo a aplicaciones de Tienda Windows.

Interfaces táctiles disponibles para Windows 7 y Windows 8:

En MSDN, consulte las Instrucciones para interacciones de usuario comunes.

Interfaz táctil de Escritorios de Windows 7 y Windows 8: WM_TOUCH

El mensaje de WM_TOUCH se puede utilizar para indicar que uno o más punteros, tal como un dedo o lápiz, han establecido contacto en la pantalla.

Código de ejemplo:

Instrucción:

Interfaz táctil para Escritorio de Windows 8: WM_POINTER

Los mensajes de WM_POINTER son parte de las API de manipulación directa y son específicas para Escritorio de Windows 8. Esta interfaz se puede utilizar para capturar punteros táctiles individuales así como gestos y manipulaciones. Los mensajes de WM_POINTER se describirán en mayor detalle en la sección sobre Interacciones de manipulación y gestos.

Referencia en MSDN: API de manipulación directa

Interfaz táctil para la interfaz de usuario de Windows Modern: PointerPoint

La clase PointerPoint es parte del entorno de Windows Runtime y es compatible solo con las aplicaciones de Tienda Windows. Proporciona propiedades básicas para el puntero de entrada asociado con un solo contacto de ratón, estilete estilográfico o toque. MSDN tiene ejemplos de códigos que pueden ayudar a los desarrolladores a comenzar a trabajar con la interfaz de PointerPoint.

Ejemplos de código en MSDN: Entrada: Ejemplo de eventos de entrada de usuario de XAML

Interacciones de manipulación y gestos

Los eventos de gestos se utilizan para interacciones estáticas con dedos, tales como pulsar y pulsar y sostener. Doble pulseo y Pulseo derecho son derivados de estos gestos básicos:

  • Gestos: el acto o movimiento físico realizado en o por el dispositivo de entrada que puede ser uno o más dedos, un estilete estilográfico o un ratón.
  • Manipulación: la respuesta inmediata y continua de un objeto ante un gesto. Por ejemplo, el gesto de deslizar causa que un objeto se mueva de alguna manera.
  • Interacciones: cómo se interpreta una manipulación y el comando o acción que resulta de la manipulación. Por ejemplo, tanto el gesto de deslizar o deslizar rápidamente son similares pero los resultados varían en función de si se sobrepasa el umbral de distancia o no.

Tabla 2. Gestos básicos utilizados para interacciones de manipulación

Gesto Tipo Descripción

Pulsar y sostener

Gesto estático

Se detecta un solo contacto y no se mueve. Pulsar y sostener presenta información detallada o visuales instructivos sin comprometerse a realizar una acción.

Pulsar

Gesto estático

Un dedo toca la pantalla y se levanta de inmediato.

Girar

Gesto de manipulación

Dos o más dedos tocan la pantalla y giran hacia la derecha (en el sentido de las agujas del reloj) o a la izquierda (en el sentido contrario a las agujas del reloj).

Deslizar

Gesto de manipulación

Uno o más dedos tocan la pantalla y se mueven en la misma dirección (también denominado panorámico)

Deslizar rápidamente

Gesto de manipulación

Uno o más dedos tocan la pantalla y se mueven una corta distancia en la misma dirección.

Reducir

Gesto de manipulación

Dos o más dedos tocan la pantalla y se acercan o alejan entre sí.

Ampliar

Gesto de manipulación

Dos o más dedos tocan la pantalla y se alejan entre sí.


Tabla 3. Interfaces de gestos disponibles para sistemas Ultrabook™

Compatibilidad de sistema operativo Interfaz de GESTURE Descripción

Windows 7

Windows 8 (escritorio)

WM_TOUCH + IManipulationProcessor

  • Esta combinación ofrece al desarrollador la funcionalidad de la API de WM_POINTER que está disponible solo para el Escritorio de Windows 8.
  • Los puntos de toques máximos son dictados por el hardware.

Windows 7

Windows 8 (escritorio)

Estructura WM_GESTURE + GESTUREINFO

  • Máximo de dos puntos de toques simultáneos
  • Sin gestos simultáneos
  • Si la aplicación requiere manipulaciones más complejas que las que están disponibles en el mensaje de WM_GESTURE, es necesario escribir un reconocedor de gestos personalizado mediante la interfaz WM_TOUCH.

Windows 8 (escritorio)

WM_POINTER

  • Las interacciones de gestos resultan del uso de las API de manipulación directa, las cuales aceptan un flujo de mensajes de entrada del puntero.

Interfaz de usuario de Windows Modern

PointerPoint

  • Las interacciones de gestos resultan del uso del Reconocedor de gestos, el cual acepta la salida del PointerPoint.

Referencias en MSDN:


Tabla 4. Interacciones esperadas estándar y consecuencias para interacciones táctiles

Interacciones Descripción

Pulsar y sostener para aprender

Muestra información detallada o elementos visuales didácticos.

Pulsar para acción principal

Invoca una acción principal, por ejemplo, iniciar una aplicación o ejecutar un comando.

Deslizar para panorámico

Se usa principalmente para interacciones de movimiento panorámico pero también puede usarse para mover, dibujar o escribir. También se puede utilizar para enfocarse en elementos pequeños de alto contenido al arrastrar (deslizar el dedo sobre el objeto relacionado tal como los botones de radio).

Deslizar rápidamente para seleccionar, emitir un comando y mover

Deslizar el dedo una corta distancia, perpendicular a la dirección panorámica, selecciona los objetos en una lista o cuadrícula.

Reducir y ampliar para zoom

No solo se utiliza para redimensionar, esta interacción también habilita el salto al principio, al final o a cualquier punto dentro del contenido con el Zoom semántico. El control Zoom semántico ajusta el nivel de aumento del área de vista para mostrar grupos de elementos y maneras rápidas para regresar a ellos.

Girar para rotar

Rotar con dos o más dedos hace rotar un objeto.

Deslizar rápidamente desde el borde para usar comandos de aplicaciones

Los comandos de aplicaciones se revelan al deslizar rápidamente desde el borde inferior o superior de la pantalla.

Deslizar rápidamente desde el borde para usar comandos de sistema

Deslizar rápidamente desde el borde derecho de la pantalla muestra los accesos que se utilizaron para los comandos de sistema. Deslizar rápidamente desde el borde izquierdo resulta en un recorrido cíclico de las aplicaciones en ejecución y deslizar rápidamente desde el borde superior hacia la parte inferior de la pantalla cierra la aplicación. Deslizar desde el borde superior hacia abajo y al borde izquierdo o derecho arrastra la aplicación en uso a ese lado de la pantalla.

Interpretación de interacciones de manipulación y gestos para Escritorio de Windows 7

La interfaz IManipulationProcessor se puede utilizar en combinación con la API WM_TOUCH a fin de proporcionar una manera de agregar las funciones de traducción, rotación, escala e inercia a los objetos de la interfaz de usuario. Esta combinación proporciona funcionalidad similar a las características de reconocimiento de gestos de WM_POINTER. Tras habilitar el Procesador de manipulación, la manipulación comienza tan pronto como se inicia un gesto táctil.

Código de ejemplo:

Los mensajes de WM_GESTURE tienen una estructura denominada GESTUREINFO que está disponible para la interpretación de gestos y manipulaciones. La página web de MSDN para WM_GESTURE muestra un ejemplo de cómo obtener información específica sobre gestos mediante la estructura de GESTUREINFO

Observe que WM_GESTURE tiene limitaciones, entre ellas: la cantidad máxima de entradas táctiles simultáneas es solo dos y no admite gestos simultáneos. Para aplicaciones que requieren más capacidades pero que todavía necesitan compatibilidad con Escritorio de Windows 7, utilice la interfaz de WM_TOUCH y ya sea escriba un reconocedor de gestos personalizado, tal como se describe en la sección Reconocimiento de gestos personalizado a continuación o bien utilicer la interfaz del Procesador de manipulaciones con WM_TOUCH.

Código de ejemplo en la Zona para desarrolladores Intel (WM_GESTURE API + GESTUREINFO: Aplicación modelo: Táctiles para sistemas de escritorio

Para obtener más información sobre cómo escribir aplicaciones habilitadas para funciones táctiles, consulte el artículo de MSDN: Diseño de interacción táctil.

Manejo de interacciones de manipulación y gestos para aplicaciones de Escritorio de Windows 8

Las aplicaciones destinadas solo para Escritorio de Windows 8 pueden utilizarse para las API de manipulación directa (mensajes WM_POINTER). Los mensajes del puntero se pasan a un objeto de Contexto de interacción interno que realiza operaciones de reconocimiento en la manipulación sin necesidad de implementar un reconocedor de gestos personalizado. Existe una infraestructura de llamadas de regreso donde se administran todas las interacciones que requieren contactos de control.

La Manipulación directa se diseñó para manejar tanto interacciones de manipulación como gestos y es compatible con dos modelos para las entradas de procesamiento:

  1. Automático/Independiente: La Manipulación directa intercepta automáticamente los mensajes de ventana en el subproceso delegado y manejado sin ejecutar el código de aplicación que lo hace independiente de la aplicación.
  2. Manual/Dependiente: El proceso de ventana recibe los mensajes de ventana en ejecución en el subproceso de interfaz de usuario, el cual, a su vez, llama la Manipulación directa para procesar el mensaje lo cual hace que sea dependiente de la aplicación.

Los gestos pueden ser capturados al inicializar la Manipulación directa y al preparar el sistema para el procesamiento de entradas.

Consulte Quickstart: Manipulación directa en MSDN para obtener una descripción de las llamadas de API requeridas para completar las tareas típicas cuando se trabaja con la Manipulación directa.

Manejo de Interacciones de manipulación y gestos en la interfaz de usuario de Windows 8 Modern

La API de GestureRecognizer sirve para manejar las entradas del puntero para procesar eventos de manipulación y gestos. Cada objeto que devuelve el método PointerPoint se utiliza para alimentar datos del puntero al GestureRecognizer. El reconocedor de gestos escucha y administra las entradas del puntero y procesa los eventos de gestos estáticos. Para ver un ejemplo de cómo crear un objeto de GestureRecognizer y luego habilitar eventos de gestos de manipulación en ese objeto, consulte la página web MSDN GestureRecognizer (en la referencia a continuación.)

Referencias en MSDN:

Código de ejemplo en la Zona para desarrolladores Intel: Aplicación modelo: Táctiles para Tienda Windows*.

Reconocimiento de gestos personalizado

Siempre que sea posible, utilice los reconocedores de gestos integrados (vea la Tabla 3). Si las interfaces de gestos y manipulación no proporcionan la funcionalidad necesaria, o tal vez la aplicación necesita eliminar la ambigüedad entre los pulseos y los gestos más rápidamente, puede que sea necesario escribir un software de reconocimiento de gestos personalizado. Si es así, los consumidores anticipan una experiencia intuitiva que requiera interacción directa con los elementos de la interfaz de usuario que se encuentran en la aplicación. Es aconsejable basar las interacciones personalizadas en los controles estándar para mantener las acciones de usuario consistentes y detectables. Las interacciones personalizadas solo deben utilizarse si existe un requisito claro y bien definido y si las interacciones básicas no son compatibles con la funcionalidad deseada de la aplicación. Consulte la Tabla 4 para obtener la lista de las interacciones y consecuencias más comunes y anticipadas para las interacciones táctiles.

Ejemplo de código en la Zona para desarrolladores Intel (WM_TOUCH con reconocimiento de gestos personalizado): Táctiles para Escritorio de Windows

Compatibilidad táctil en navegadores de web

La entrada táctil también está disponible para aplicaciones que se ejecutan en navegadores de la web, con varios niveles de compatibilidad según el navegador. Debido a que las capacidades de un navegador de la web cambian rápidamente, por lo general, es mejor detectar las características compatibles en lugar de los navegadores específicos. Sea ha comprobado que la detección de características es una técnica más efectiva una vez que se determina si se trata de Internet Explorer (IE) 10, un navegador basado en Webkit* u otro navegador distinto que requiere compatibilidad. La detección de características requiere menos mantenimiento por los siguientes motivos:

  • Nuevos navegadores son lanzados al mercado y los existentes son actualizados a menudo. El código existente posiblemente no tenga en cuenta las versiones nuevas del navegador. Los navegadores actualizados posiblemente no sean compatibles con normas y características inadmisibles cuando se diseñó el código de detección de navegadores.
  • Con frecuencia, los nuevos dispositivos incluyen versiones nuevas de navegadores, por tanto la detección de navegadores debe ser revisada continuamente a fin de que sea compatible con los navegadores nuevos. La creación de implementaciones personalizadas para cada navegador puede resultar enormemente complicada.
  • Muchos navegadores admiten la habilidad de modificar la cadena de usuario-agente lo cual dificulta la detección del navegador para identificarlo de manera precisa.

WebKit activa Apple Safari* y Google Chrome*, y pronto Opera modernizarán su navegador para que WebKit lo utilice. Internet Explorer 10 no utiliza WebKit; sin embargo, tanto WebKit como IE 10 se basan en la Especificación de núcleos del Document Object Model (DOM) (Modelo de objetos de documentos) Nivel 3. Para revisar los estándares asociados con los eventos táctiles, consulte Touch Events Version 1 (Eventos táctiles versión 1) de estándares, con fecha de enero de 2013.

Referencias:

IE 10 tiene sus propias interfaces táctiles que deben llamarse para procesar eventos táctiles. Utilice el objeto navigator con la propiedad userAgent para determinar si el navegador es compatible con las características deseadas. El ejemplo a continuación ilustra que el navegador es Internet Explorer.

Uso:

[javascript]
<script type="text/JavaScript">
If (navigator.userAgent.indexOf(“MSIE”)>0)
    { 
         // Run custom code for Internet Explorer.
    }
</script>
[/javascript]

Ilustración 1. Fragmento para determinar si el navegador es Internet Explorer*

Utilice el método hasFeature para determinar si ciertas características específicas son compatibles con el navegador. Por ejemplo, aquí se ilustra cómo determinar si un navegador es compatible con eventos táctiles (funciona también para IE 10):

[javascript]
var touchSupported = document.implementation.hasFeature("touch-events","3.0");
[/javascript]

Donde “touch-events” es la característica que estamos comprobando y “3.0” es el nivel de especificación del DOM en el cual estamos interesados. Entonces, una aplicación escucha los siguientes eventos táctiles: touchstart, touchend, touchmove y touchcancel.

Referencia: método hasFeature

Para procesar eventos táctiles mediante un navegador basado en WebKit (Chrome, Safari, etc.), simplemente configure los siguientes tres eventos para abarcar los estados principales de entrada:

[javascript]
canvas.addEventListener( ‘touchstart’, onTouchStart, false );
canvas.addEventListener( ‘touchmove’, onTouchMove, false);
canvas.addEventListener( ‘touchend’, onTouchEnd, false);
[/javascript]

Para Internet Explorer, en su lugar haga referencia al evento de MSPointer:

[javascript]
canvas.addEventListener( ‘MSPointerDown’, onTouchStart, false );
canvas.addEventListener( ‘MSPointerMove’, onTouchMove, false);
canvas.addEventListener( ‘MSPointerUp’, onTouchEnd, false);
[/javascript]

De manera similar, existen también oyentes de eventos de gestos. Estos oyentes son gestureStart, gestureChange y gestureEnd para los navegadores que no son IE 10.

Descargue un código de ejemplo que acepta eventos de puntero del DOM en MSDN: Ejemplo de entrada de eventos de puntero del DOM.

Internet Explorer 10 y su compatibilidad con Windows 7

Aunque IE 10 no utiliza WebKit, se basa en las normas de eventos del DOM Nivel 3, HTML5 y eventos de progreso. Esta sección proporciona información sobre IE 10 y cómo interactúa en Windows 7.

Normas:

Internet Explorer 10 en Windows 7 acepta entradas táctiles y lápiz como entradas de ratón simuladas para los siguientes eventos del Document Object Model (DOM) (Modelo de objetos de documentos):

  • MSPointerCancel
  • MSPointerDown
  • MSPointerMove
  • MSPointerOver
  • MSPointerUp

IE 10 en Windows 7 no activará ninguno de los siguientes eventos de gestos del DOM:

  • MSGestureChange
  • MSGestureEnd
  • MSGestureHold
  • MSGestureStart
  • MSGestureTap
  • MSManipulationStateChanged

Tabla 5. Interfaces táctiles para Internet Explorer* 10

Interfaz Windows* 7
MSVS 2010
Windows 8
MSVS 2012 (escritorio)
Interfaz de usuario de Windows 8 Modern Descripción

MSGESTURE

NO

  • Obtenga niveles elevados de gestos tales como sostener, panorámico y pulsar con facilidad sin capturar cada evento del puntero de forma individual

MSPOINTER

  • Parte del núcleo del Modelo de objetos de documentos (DOM)
  • Ambos métodos getCurrentPoint y getIntermediatePoints recuperan una colección de objetos PointerPoint y están disponibles solo en Windows 8.

Para obtener más información sobre cómo desarrollar aplicaciones para web habilitadas para táctiles en IE 10 (MSDN): Guía para desarrolladores de Internet Explorer 10

Ejemplos de código en MSDN: Entrada: Manipulaciones y gestos (JavaScript)

Identificación de capacidad táctil

Si una aplicación es nativa o de web, el desarrollador seguramente deseará agregar una comprobación de la capacidad táctil del hardware de manera que la aplicación pueda configurar su interfaz de usuario de manera correcta. Utilice los siguientes métodos para probar la capacidad táctil.

Escritorio de Windows 7 y Windows 8

Las aplicaciones destinadas para Escritorio de Windows 7 o Windows 8 pueden llamar GetSystemMetrics con SM_DIGITIZER como el argumento. El siguiente fragmento de código es parte de una muestra de Táctil que puede descargarse de la Zona para desarrolladores Intel: Táctiles para Escritorio de Windows

Referencias:

[cpp]
 // Compruebe compatibilidad para táctiles
 // Obtenga las capacidades táctiles al llamar GetSystemMetrics
    BYTE digitizerStatus = (BYTE)GetSystemMetrics(SM_DIGITIZER);
 // Capacidades táctiles del hardware (0x80); disponibilidad (0x40)
    if ((digitizerStatus & (0x80 + 0x40)) != 0) //Stack Ready + MultiTouch
    {
        RegisterTouchWindow(m_pWindow->GetHWnd(), TWF_WANTPALM);
    }
[/cpp]

Ilustración 2. Ejemplo de Windows* 7 para identificar la capacidad táctil

Observe que GetSystemMetrics se puede utilizar para determinar cuál es la cantidad máxima de puntos táctiles que están disponibles:

[cpp]
	BYTE nInputs = (BYTE)GetSystemMetrics(SM_MAXIMUMTOUCHES);
[/cpp]

Windows 8 (aplicaciones de Tienda Windows)

Utilice la clase TouchCapabilities para determinar las capacidades táctiles para las aplicaciones de Tienda Windows. El siguiente fragmento de código se encuentra en el ejemplo de código en MSDN que demuestra su uso: Entrada: Ejemplo de capacidades de dispositivo.

Referencias:

[cpp]
void SDKSample::DeviceCaps::Touch::TouchGetSettings_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    Button^ b = safe_cast<Button^>(sender);
    if (b != nullptr)
    {
        TouchCapabilities^ pTouchCapabilities = ref new TouchCapabilities();
        Platform::String^ Buffer;

        Buffer = "There is " + (pTouchCapabilities->TouchPresent != 0 ? "a" : "no") + " 
              digitizer present\n";
        Buffer += "The digitizer supports " + pTouchCapabilities->Contacts.ToString() + " 
              contacts\n";

        TouchOutputTextBlock->Text = Buffer;
    }
}
[/cpp]

Ilustración 3. Ejemplo de interfaz de usuario de Windows* para identificar capacidades táctiles

Aplicaciones de web

Para Internet Explorer, utilice la propiedad msMaxTouchPoints tal como se describe a continuación:

Prueba para hardware con capacidad táctil:
If (navigator.msMaxTouchPoints) {…}

Prueba para hardware con capacidad multitáctil:
If (navigator.msMaxTouchPoints >1) {…}

Obtenga la cantidad máxima de puntos táctiles que admite el hardware:
Var touchPoints = navigator.msMaxTouchPoints;

Para los navegadores Chrome y Safari, utilice lo siguiente (igual que los anteriores pero reemplace msMaxTouchPoints por maxTouchPoints):

[javascript]
var result = navigator.maxTouchPoints;
[/javascript]

Puede ser algo complicado probar dispositivos táctiles de manera genérica desde aplicaciones de web. Si bien es cierto que algunas características funcionan bien en algunos navegadores, otras indican que la capacidad táctil está presente cuando en realidad no está. Por ejemplo, si el navegador mismo es compatible con capacidades táctiles, es posible que declare que las capacidades táctiles están disponibles aunque el dispositivo no esté habilitado para ellas.

Observe que MaxTouchPoints devolverá un 0 en IE 10 (escritorio) que se ejecuta en Windows 7.

Referencias:

Diseño de interfaz de usuario para sistemas Ultrabook habilitados para táctiles

Las aplicaciones diseñadas para sistemas Ultrabook puede que necesiten procesar gestos tales como pulseos, panorámicos, zooms, etc. Las aplicaciones que han sido habilitadas para táctiles pueden hacer poco con los datos sin procesar del puntero excepto por pasarlos a la detección de gestos.

Las aplicaciones nuevas deben ser diseñadas con la expectativa de que las capacidades táctiles constituirán el método de entrada principal. La compatibilidad con el ratón y el estilete estilográfico (stylus) no precisa trabajo adicional; sin embargo, los desarrolladores de software deben considerar muchos otros factores al diseñar aplicaciones optimizadas para táctiles.

Tabla 6. Consideraciones para aplicaciones habilitadas para capacidades táctiles

Factor Pantalla táctil Ratón/Estilete estilográfico (stylus)

Precisión

  • El área de contacto para la punta de los dedos es mayor que una sola coordenada x-y.
  • La forma del área de contacto varía con el movimiento
  • No existe un cursor del ratón para ayudar a determinar el destino
  • El ratón o estilete estilográfico (stylus) ofrece una coordenada x-y precisa
  • El destino del teclado es explícito

Anatomía humana

  • Los movimientos de las puntas de los dedos son imprecisos
  • Algunas áreas de la superficie táctil pueden ser difíciles de alcanzar
  • Los objetos pueden ser oscurecidos por una o más puntas de los dedos
  • El movimiento en línea recta con el ratón o estilete estilográfico (stylus) es más sencillo
  • El ratón o estilete estilográfico (stylus) puede alcanzar cualquier parte de la pantalla
  • Los dispositivos de entrada indirecta no ocasionan obstrucciones

Estado del objeto

  • La capacidad táctil utiliza un modelo de dos estados. La superficie táctil se toca o no. No existe un estado de desplazamiento que pueda activar respuestas visuales adicionales.
  • Existen tres estados a su disposición: activo, inactivo, desplazarse (enfoque)

Interacción enriquecida

  • Multitáctil: varios puntos de entrada (puntas de dedos) están disponibles.
  • Admite un solo punto de entrada.

Los desarrolladores de software deben proporcionar comentarios visuales adecuados durante las interacciones de manera que los usuarios puedan reconocer, aprender y adaptarse a cómo la aplicación y el sistema operativo interpretan sus interacciones. Los comentarios visuales son muy importantes para los usuarios ya que les ayudan a comprender si sus interacciones son exitosas, a fin de que puedan mejorar su sentido de control. Puede ayudar a reducir errores y ayudar a los usuarios a comprender el sistema y el dispositivo de entrada.

Recursos para desarrollar aplicaciones táctiles

Artículos relacionados en la Zona para desarrolladores Intel

  1. Comparación de técnicas de codificación de táctiles: Muestra de táctiles para Escritorio de Windows 8
  2. Exploración de muestras de táctiles para aplicaciones de Windows* 8
  3. Muestra de código táctil para Tienda Windows* 8
  4. Muestra de código táctil para Escritorio de Windows* 8
  5. Migración de aplicaciones Win32 a Escritorio de Windows 8
  6. Juego de estrategia en tiempo real con pantalla táctil

Artículos relacionados en MSDN

  1. Guía para programación de entrada táctil para Windows 7
  2. Visión general de la arquitectura (Windows 7)
  3. Resolución de problemas de aplicaciones
  4. Adición de compatibilidad con manipulación en código no administrado
  5. Muestras táctiles de Windows
  6. Construcción de aplicaciones con capacidades táctiles avanzadas en Windows 8* (video)
  7. SDK de Windows 8
  8. Entrada: Muestra de pruebas de acciones táctiles
  9. Documentación para desarrollar aplicaciones para escritorio (Windows)
  10. Visión general de gestos táctiles de Windows (Windows)
  11. Primeros pasos con lo mensajes táctiles de Windows (Windows)
  12. Obtención de la función PointerTouchInfo (Windows)
  13. Guía para desarrolladores de Internet Explorer 10 (MSDN)

Resumen

Los desarrolladores de aplicaciones que desean desarrollar aplicaciones habilitadas para capacidades táctiles, ya que sea que sus aplicaciones se ejecuten de manera nativa o si se destinan a aplicaciones de la web, necesitan comprender claramente qué API están disponibles. Esta guía describe las interfaces disponibles para los siguientes entornos: Windows 7, Escritorio de Windows 8, Interfaz de usuario de Windows Modern, así como las aplicaciones que se ejecutan en navegadores de la web. Mientras los gestos y manipulaciones son posibles en Windows 7, los desarrolladores de aplicaciones pueden descubrir que las API de Windows 8 (las destinadas al escritorio y/o la interfaz de usuario para Modern) ofrecen las mejores opciones para el reconocimiento automático de gestos.

Los desarrolladores de aplicaciones que escriben aplicaciones para la web habilitadas para interacciones táctiles necesitan revisar su código para IE 10 debido a que IE 10 tiene su propia interfaz que se debe utilizar para procesar capacidades táctiles, gestos y manipulaciones. Otros navegadores basados en Webkit también se basan en las normas de DOM Nivel 3 y son compatibles con eventos táctiles y de gestos.

Esta guía también incluye descripciones de las interacciones comunes de gestos y manipulaciones y proporciona algunas instrucciones para desarrollar aplicaciones habilitadas para capacidades táctiles.

Sobre la autora

Gael Hofemeier es un ingeniero evangelista de aplicaciones en Intel Corporation. Su enfoque consiste en proporcionar contenido técnico que necesitan los desarrolladores que escriben software para la Arquitectura Intel®. Además de escribir contenido, ella también es moderadora del Foro de clientes comerciales en la Zona para desarrolladores Intel.

Vea la página de la autora, el blog de Gael

Intel, el logotipo de Intel, Ultrabook y Core son marcas comerciales de Intel Corporation en EE.UU. y/o en otros países.

Copyright © 2013 Intel Corporation. Todos los derechos reservados.

*Las demás marcas y nombres podrían ser considerados como propiedad de terceros.

Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.