Руководство разработчика сенсорных интерфейсов устройств Ultrabook™ и планшетов под управлением Windows*

Скачать статью

Скачать Руководство разработчика сенсорных интерфейсов устройств Ultrabook и планшетов под управлением Windows* [PDF 958,6 КБ]

Содержание

Предисловие

Это руководство содержит информацию для разработчиков приложений о прикладных программных интерфейсах, которые могут использоваться для создания приложений, предназначенных для устройств Ultrabook™. Оно включает информацию по разработке приложений для запуска в Windows* 7, Windows* 8 (в режиме рабочего стола), в современном пользовательском интерфейсе Windows*, а также приложений, выполняемых в веб-браузерах.

В этом руководстве также представлены описания типовых требований пользователей к жестам, а также некоторые правила для разработки сенсорных интерфейсов.

Введение

В настоящее время существует множество сенсорных устройств Ultrabook™, для которых разработчики ПО создают приложения с функциями сенсорного ввода. Чтобы приложение обладало всеми сенсорными возможностями, оно должно соответствовать трем критериям:

  • Наиболее часто используемые регулировки должны иметь размер не менее 40X40 пикселей, чего достаточно для простого выбора пальцем.
  • Определенные жесты (панорамирование, масштабирование, поворот, касание двумя пальцами, нажатие и прикосновение) приводят к отображению соответствующих эффектов в точке контакта.
  • Приложение поддерживает плавную и доступную визуальную реакцию во время панорамирования, изменения масштаба и поворота для обеспечения полного ощущения взаимодействия.

Это руководство может использоваться создателями новых приложений или для обновления уже существующих приложений для добавления в них поддержки сенсорных функций.

Для получения дополнительной информации о создании приложений с поддержкой сенсорных функций см. статью MSDN - Touch Interaction Design (Дизайн сенсорного взаимодействия).

Требования к оборудованию

Сегодня потребители имеют возможность выбора разнообразных сенсорных устройств. Перед разработчиками стоит сложная задача разработки приложений, которые должны полноценно использоваться на каждом устройстве. В целом, приложения с сенсорными функциями должны работать на любом из таких устройств, полностью используя их сенсорные возможности. Устройства Ultrabook имеют высококлассные сенсорные характеристики и должны считаться приоритетными во время выбора дизайна интерфейса приложений с сенсорными функциями.

Устройства Ultrabook с сенсорными экранами доступны с 2011 года:

  • Семейство процессоров Intel® Core™ второго поколения (кодовое название – Sandy Bridge). Эти системы выпускались с ОС Windows 7 и некоторые из них имели сенсорные экраны.
  • Семейство процессоров Intel® Core™ третьего поколения (кодовое название – Ivy Bridge). Эти системы также сначала выпускались с Windows 7, но теперь поставляются с ОС Windows 8. Мы будем все больше видеть такие системы с сенсорными функциями на рынке в 2013 году и позднее, в особенности, с новыми и конвертируемыми форм-факторами.

В оставшейся части этого руководства для разработчиков предполагается, что целевой платформой для разработки является сенсорная система Ultrabook. Программное обеспечение, предназначенное для таких устройств, может быть адаптировано для другого сенсорного оборудования, которое работает под управлением этой же ОС.

Среды функционирования устройств Ultrabook

Проектирование приложений сегодня требует тщательного рассмотрения того, какой средой наиболее часто пользуются клиенты, и какие приложения для них подходят лучше всего. Если приложение предназначено для рабочего стола Windows 8 или будет использоваться в качестве приложения электронного Магазина Windows, разработчик должен знать, какие интерфейсы он может применить.

Если приложение предназначено для использования в пользовательском интерфейсе Windows 8 (также называется приложением для Магазина Windows), тогда оно должно использовать прикладные интерфейсы WinRT. Если приложение должно запускаться в среде рабочего стола Windows 8, тогда есть несколько вариантов: устаревшие прикладные интерфейсы Windows 7 и новые, предназначенные для сенсорных возможностей Windows 8. Эти интерфейсы будут обсуждаться в следующих ниже разделах. Другие варианты относятся к разработке веб-приложений. Далее также будут представлены сенсорные интерфейсы для веб-браузеров.

Сенсорное взаимодействие: указатель, жест и манипуляция

Существуют различные уровни интерпретации сенсорного ввода. События указателя являются наиболее общими, так как они представляют отдельные точки сенсорного контакта. События жестов и манипуляций строятся на этой же основе. События жестов обеспечивают простой способ записи простых жестов нажатий и удержаний. События манипуляций предназначены для сенсорного взаимодействия, которое использует физические жесты для эмуляции физических манипуляций с элементами пользовательского интерфейса. События манипуляций создают более естественное представление, когда пользователь взаимодействует на экране с элементами пользовательского интерфейса. Доступные сенсорные интерфейсы имеют различные уровни поддержки данных трех уровней взаимодействия.

Узнайте подробнее о жестах, манипуляциях и взаимодействиях на сайте MSDN

Взаимодействие с помощью указателя

Событие указателя – это один ввод или "контакт" из устройства ввода, такого как мышь, стилус, касание одного или нескольких пальцев. Когда контакт сделан, система создает указатель его первого обнаружения и уничтожает его, когда он покинет диапазон обнаружения или будет отменен. В случае обнаружения сразу нескольких контактов каждый из них будет считаться уникальным указателем. В таблице 1 представлены интерфейсы определения общих событий указателя, которые доступны для устройств Ultrabook, работающих под управлением Windows 7 и Windows 8.

Таблица 1. Прикладные интерфейсы указателя для устройств Ultrabook

Совместимость ОС Сенсорный интерфейс Примечания

Windows* 7 (рабочий стол)

WM_TOUCH

  • Также совместим со средой рабочего стола Windows 8.
  • Максимальное число одновременных прикосновений ограничено аппаратными возможностями.
  • Нет встроенного распознавания жестов.
  • Необходимость вызова RegisterTouchWindow, поскольку сообщения WM_TOUCH не отправляются по умолчанию.

Только Windows 8 (режим рабочего стола)

WM_POINTER

  • Применяется только для среды рабочего стола Windows 8.
  • По умолчанию анимации и ответные взаимодействия Windows 8 генерируются и доступны для дальнейшей обработки.

Современный пользовательский интерфейс Windows

PointerPoint

  • Применяется только для приложений Магазина Windows.

Сенсорные интерфейсы, доступные для Windows 7 и Windows 8:

См. статью Guidelines for common user interactions (Правила общего пользовательского взаимодействия) на сайте MSDN.

Сенсорный интерфейс рабочего стола Windows 7 и Windows 8: WM_TOUCH

Сообщение WM_TOUCH может использоваться для указания того, что с экраном могут иметь контакт один или более указателей, таких как палец или стилус.

Пример кода:

Рекомендации:

Сенсорный интерфейс рабочего стола Windows 8: WM_POINTER

Сообщения WM_POINTER являются частью прикладных интерфейсов Direct Manipulation и относятся к рабочему столу Windows 8. Эти интерфейсы могут использоваться для записи отдельных сенсорных указателей, а также жестов и манипуляций. Сообщения WM_POINTER будут обсуждаться в разделе Взаимодействие с помощью манипуляций и жестов.

Ссылка на сайт MSDN: Direct Manipulation APIs (Интерфейсы прямых манипуляций)

Современный пользовательский сенсорный интерфейс Windows: PointerPoint

Класс PointerPoint является частью среды выполнения Windows и совместим только с приложениями для Магазина Windows. Он содержит общие свойства для указателя ввода, связанного с одним контактом мыши, стилуса и пальца. На сайте MSDN содержится пример кода, который может помочь разработчикам начать использовать интерфейс PointerPoint.

Пример кода на сайте MSDN: Ввод: Пример событий ввода пользователя XAML

Взаимодействие с помощью манипуляций и жестов

События жестов используются для обработки статических взаимодействий прикосновений пальцев, таких как нажатие пальцем и нажатие и удержание в нажатом состоянии. Двойное нажатие и нажатие правой кнопкой интерпретируются с помощью основных жестов:

  • Жесты: физическое действие или движение, выполненное с помощью устройства ввода, которое может быть одним или несколькими пальцами, стилусом или мышью.
  • Манипуляции: немедленный ответ объекта на жест. Например, жест скольжения приводит к перемещению объекта в каком-либо направлении.
  • Взаимодействия: интерпретация манипуляций и команд или действий, вызванных в результате манипуляции. Например, жесты сдвиг и скольжение подобны, но их результаты различаются в зависимости от превышения предельного значения расстояния.

Таблица 2. Основные жесты, используемые для взаимодействий манипуляций

Жест Тип Описание

Нажатие и удержание в нажатом состоянии

Статический жест

Одиночный обнаруженный контакт, который не перемещается. Нажатие и удержание в нажатом состоянии формирует подробную информацию или визуальное представление без последующего действия.

Нажатие

Статический жест

Один палец прикасается к экрану и немедленно отрывается от него.

Поворот

Жест манипуляции

Два или более пальцев прикасаются к экрану и поворачиваются по часовой или против часовой стрелки.

Скользящее движение

Жест манипуляции

Один или более пальцев прикасаются к экрану и перемещаются в одном направлении (также называется Сдвигом)

Прокрутка

Жест манипуляции

Один или более пальцев прикасаются к экрану и коротко перемещаются в одном направлении

Сжатие

Жест манипуляции

Два или более пальцев прикасаются к экрану и приближаются или удаляются друг от друга.

Растяжение

Жест манипуляции

Два или более пальцев прикасаются к экрану и удаляются друг от друга.


Таблица 3. Интерфейсы жестов, доступные для устройств Ultrabook™

Совместимость ОС Интерфейс GESTURE Примечания

Windows 7

Windows 8 (рабочий стол)

WM_TOUCH + IManipulationProcessor

  • Эта комбинация предоставляет разработчику функциональность прикладного интерфейса WM_POINTER, которая доступна только для рабочего стола Windows 8.
  • Максимальное количество точек прикосновения определяется аппаратными возможностями.

Windows 7

Windows 8 (рабочий стол)

Структура WM_GESTURE + GESTUREINFO

  • Максимум две точки одновременного прикосновения
  • Нет одновременных жестов
  • Если в приложении требуется выполнять более сложные манипуляции, чем те, что доступны в сообщении WM_GESTURE, необходимо создать собственный обработчик жестов с использованием интерфейса WM_TOUCH.

Windows 8 (рабочий стол)

WM_POINTER

Современный пользовательский интерфейс Windows

PointerPoint

  • Взаимодействия жестов являются результатом использования интерфейса GestureRecognizer, который получает вывод из PointerPoint.

Ссылки на сайт MSDN:


Таблица 4. Стандартные ожидаемые взаимодействия и последствия сенсорного взаимодействия

Взаимодействия Описание

Нажмите и удерживайте для получения информации

Выводит подробную информацию или обучающие сведения.

Нажмите для выполнения основного действия

Вызывает основное действие, например, запускает приложение или выполняет команду.

Произведите скользящее движения для сдвига

В основном используется для взаимодействий с функциональностью сдвига, но также может использоваться для перемещения, рисования или письма. Также может использоваться для указания небольших, тесно расположенных элементов, посредством "подчистки" (проведения пальцем по нужному объекту, такому как переключатель).

Прокрутите для выбора, выполнения команды и перемещения

Произведение скользящего движения пальцем на небольшое расстояние, перпендикулярное направлению панорамирования, выбирая объекты в списке или на сетке.

Сжатие и растяжение для изменения масштаба

Взаимодействие используется не только для изменения размера, а также для перехода в начало, конец или куда-либо в местоположении данных с семантическим масштабированием. Регулировка SemanticZoom используется для увеличения масштаба для быстрого отображения и возврата к группам элементов.

Вращение для разворота

Вращение объекта двумя или более пальцами.

Прокрутка от края для выполнения команд приложения

Команды приложения отображаются с помощью прокрутки на экране от нижнего края вверх.

Прокрутите от края для выполнения системных команд

Прокрутка от правого края экрана отображает элементы, которые используются для системных команд. Прокрутка от левого края обеспечивает просмотр работающих в настоящее время приложений, а скользящее движение от верхнего края вниз экрана закрывает приложения. Скользящее движение от верхнего края вниз и влево или вправо привязывает текущее приложение к данной стороне экрана.

Интерпретация взаимодействий манипуляций и жестов для рабочего стола Windows 7

Интерфейс IManipulationProcessor может использоваться в сочетании с прикладным интерфейсом WM_TOUCH для возможности добавления перемещения, поворота, масштабирования и инерции объектов пользовательского интерфейса. Эта комбинация предоставляет функции, подобные функциям распознавания жестов из WM_POINTER. После активации процессора обработки манипуляция начинается сразу после инициации жеста прикосновения.

Пример кода:

Сообщения WM_GESTURE содержат структуру GESTUREINFO, которая доступна для интерпретации жестов и манипуляций. На веб-странице MSDN представлен пример для WM_GESTURE, демонстрирующий, как получить относящиеся к жесту данные, используя структуру GESTUREINFO

Имейте в виду, что интерфейс WM_GESTURE имеет ограничения – допускается только два одновременных прикосновения и не поддерживаются одновременные жесты. Для приложений, которые требуют больших возможностей, но должны поддерживать рабочий стол Windows 7, используйте интерфейс WM_TOUCH и создайте программу распознавания жестов, как это представлено далее в разделе Распознавание особых жестов, или воспользуйтесь интерфейсом обработки манипуляций и WM_TOUCH.

Пример кода в сообществе Intel Developer Zone (прикладной интерфейс WM_GESTURE API + GESTUREINFO: Пример приложения: Прикосновение к рабочему столу

Для получения дополнительной информации о создании приложений с сенсорной поддержкой см. статью MSDN: Touch Interaction Design (Дизайн сенсорного взаимодействия).

Обработка взаимодействий манипуляций и жестов для приложений рабочего стола Windows 8

Приложения, предназначенные только для рабочего стола Windows 8, могут использовать прикладные интерфейсы непосредственных манипуляций Direct Manipulation (сообщения прикладных интерфейсов WM_POINTER). Сообщения указателя передаются внутреннему объекту контекста взаимодействия (Interaction Context), который распознает манипуляцию без необходимости реализации распознавания особых жестов. Существует инфраструктура обратных вызовов, где выполняется управление всеми взаимодействиями с использованием отслеживаемых контактов.

Интерфейс Direct Manipulation предназначен для обработки взаимодействий манипуляций и жестов и поддерживает две модели обработки ввода:

  1. Автоматическая/независимая: Сообщения окна автоматически перехватываются интерфейсом Direct Manipulation в указанном потоке и обрабатываются без запуска кода приложения, что делает его независимым от приложения.
  2. Ручная/зависимая: сообщения окна принимаются процедурой окна, которая выполняется в потоке пользовательского интерфейса и вызывает интерфейс Direct Manipulation для обработки сообщений, делая его зависимым от приложения.

Жесты могут быть записаны посредством инициализации интерфейса Direct Manipulation и подготовки системы для обработки ввода.

См. статью Quickstart: Direct Manipulation (Начало работы. Непосредственное манипулирование) на сайте MSDN для ознакомления с вызовами интерфейса, необходимыми для выполнения обычных задач при работе с интерфейсом Direct Manipulation.

Обработка взаимодействий манипуляций и жестов в современном пользовательском интерфейсе Windows 8

Прикладной интерфейс GestureRecognizer используется для управления вводом указателя и обработки событий манипуляций и жестов. Каждый объект, возвращаемый методом PointerPoint, используется для формирования данных для интерфейса GestureRecognizer. Программа распознавания жестов принимает и обрабатывает данные ввода указателя и события статических жестов. Пример создания объекта GestureRecognizer и последующей активации для него событий манипуляций и жестов можно найти на веб-странице GestureRecognizer сайта MSDN (указан далее).

Ссылки на сайт MSDN:

Пример кода в сообществе Intel Developer Zone: Пример приложения: Прикосновение к значку приложения Магазина Windows*.

Распознавание особых жестов

По возможности, старайтесь использовать встроенные функции распознавания жестов (см. таблицу 3). Если предоставленные интерфейсы жестов и манипуляций не содержат необходимых функций или для приложения необходима возможность быстрее определять нажатия и жесты, возможно, потребуется написать собственное приложение распознавания жестов. В этом случае помните, что клиенты ожидают интуитивного взаимодействия с элементами пользовательского интерфейса приложения. При таком взаимодействии лучше всего использовать стандартные параметры для обеспечения постоянства и возможности быстрого распознавания действий пользователя. Особое взаимодействие должно использоваться только при наличии точно определенных требований, а основное взаимодействие не поддерживает нужные функции приложения. В таблице 4 см. список наиболее распространенных и требуемых сенсорных взаимодействий и их последствий.

Пример кода на сайте Intel Developer Zone (WM_TOUCH с распознаванием особых жестов): Сенсорные функции для рабочего стола Windows

Сенсорная поддержка в веб-браузерах

Сенсорный ввод также доступен для приложений, работающих в веб-браузерах, и имеет различные степени поддержки, которые зависят от браузера. Поскольку возможности веб-браузеров очень быстро меняются, лучше всего просто определять поддерживаемые ими функции. Обнаружение функций является более эффективным методом после выполнения определения, например, для Internet Explorer (IE) 10, браузеров, созданных на основе Webkit*, или для другого браузера, для которого требуется поддержка. Обнаружение функций нуждается в меньшем обслуживании по следующим причинам:

  • Новые и существующие браузеры обновляются очень часто. Существующий код может быть не включен в новую версию браузера. Обновленные браузеры могут поддерживать стандарты и функции, которых еще не было, когда была создана возможность обнаружения браузера.
  • Новые устройства часто содержат новые версии браузеров, и код обнаружения браузера может непрерывно меняться для обеспечения поддержки их новых версий. Создание настраиваемых версий для каждого браузера может стать чрезвычайно сложным.
  • Многие браузеры поддерживают возможность изменения строки агента пользователя, делая обнаружение браузера очень трудным.

WebKit используется в Apple Safari*, Google Chrome * и скоро на его основе будет перестроен браузер Opera. Internet Explorer 10 не использует WebKit, однако WebKit и IE 10 созданы на основе объектной спецификации модели DOM (Document Object Mode) 3 уровня. Для ознакомления со стандартами, связанными с сенсорными событиями, см. документ стандарта для сенсорных событий версии 1 (Touch Events Version 1), вышедший в январе 2013 года.

Ссылки:

Браузер IE 10 имеет свои собственные сенсорные интерфейсы, которые должны вызываться для обработки событий прикосновения. Используйте объект navigator со свойством userAgent для определения поддержки браузером нужных функций. В следующем примере установлено, что обнаруженный браузер – это Internet Explorer.

Использование:

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

Пример 1. Модуль для определения использования браузера Internet Explorer*

Используйте метод hasFeature, чтобы определить поддержку браузером особых функций. Например, далее объяснено, как определить, если браузер поддерживает сенсорные события (это также работает для IE 10):

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

Где "touch-events" – это проверяемая функция, а "3.0" – это требуемый уровень спецификаций DOM. Приложение затем может ожидать следующие сенсорные события: touchstart, touchend, touchmove и touchcancel.

Ссылки: Метод hasFeature

Для обработки событий с помощью сенсорного WebKit-браузера (Chrome, Safari и т.д.) нужно просто настроить следующие три события, чтобы учесть основные состояния ввода:

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

Для браузера Internet Explorer см. событие MSPointer:

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

Также существуют аналогичные приемники событий жестов. Это – gestureStart, gestureChange и gestureEnd для браузеров, отличных от IE 10.

Скачайте с сайта MSDN пример кода для обработки событий указателей DOM: Input DOM pointer event handling sample (Пример обработки события указателя DOM).

Internet Explorer 10 и его совместимость с Windows 7

В то время как IE 10 не использует WebKit, он создан на основе событий DOM 3-го уровня, HTML5 и стандартов выполнения событий. В этом разделе содержится информация о браузере IE 10 и о том, как он взаимодействует в системе Windows 7.

Стандарты:

Internet Explorer 10 в системе Windows 7 обрабатывает прикосновения пальцем и стилусом посредством эмуляции ввода мыши для следующих событий DOM:

  • MSPointerCancel
  • MSPointerDown
  • MSPointerMove
  • MSPointerOver
  • MSPointerUp

Браузер IE 10 в системе Windows 7 не будет обрабатывать следующие события жестов DOM:

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

Таблица 5. Сенсорные интерфейсы для Internet Explorer* 10

Интерфейс Windows* 7
MSVS 2010
Windows 8
MSVS 2012 (рабочий стол)
Современный пользовательский интерфейс Windows 8 Примечания

MSGESTURE

НЕТ

Да

Да

  • Обработка жестов высокого уровня, таких как удержание, сдвиг и легкое нажатие без записи каждого по отдельности события указателя

MSPOINTER

Да

ДА

Да

  • Часть ядра объектной модели DOM (DOM Object Model)
  • Методы getCurrentPoint и getIntermediatePoints обрабатывают коллекцию объектов PointerPoint и доступны только в системе Windows 8.

Для получения дополнительной информации о разработке сенсорных веб-приложений для IE 10 (MSDN) см.: Руководство для разработчиков приложений для Internet Explorer 10

Пример кода на MSDN: Ввод: Манипуляции и жесты (JavaScript)

Идентификация сенсорных возможностей

Независимо от типа приложения (оригинальное или веб-приложение) разработчик может добавить проверку аппаратных сенсорных возможностей, чтобы иметь возможность соответствующей настройки пользовательского интерфейса своего приложения. Используйте следующие методы для проверки сенсорных возможностей.

Windows 7 или Windows 8 (режим рабочего стола)

Приложения, предназначенные для Windows 7 или Windows 8 (режим рабочего стола), могут вызывать интерфейсы GetSystemMetrics с SM_DIGITIZER в качестве параметра. Следующий фрагмент кода является частью примера сенсорных функций, который можно скачать с сайта Intel Developer Zone: Сенсорные функции для рабочего стола Windows

Ссылки:

    // Проверка сенсорной поддержки
// Получение сенсорной поддержки с вызовом GetSystemMetrics
    BYTE digitizerStatus = (BYTE)GetSystemMetrics(SM_DIGITIZER);
    // Аппаратные сенсорные возможности (0x80); готовность (0x40)
    if ((digitizerStatus & (0x80 + 0x40)) != 0) //Stack Ready + MultiTouch
    {
        RegisterTouchWindow(m_pWindow->GetHWnd(), TWF_WANTPALM);
 }

Пример 2. Образец для определения сенсорных возможностей Windows* 7

Имейте в виду, что класс-метод GetSystemMetrics может использоваться для определения максимального доступного числа точек прикосновения:

	BYTE nInputs = (BYTE)GetSystemMetrics(SM_MAXIMUMTOUCHES);

Windows 8 (приложения Магазина Windows)

Определяйте сенсорные возможности приложений для Магазина приложений Windows с помощью класса TouchCapabilities. Следующий фрагмент кода с демонстрацией использования можно найти в примерах на сайте MSDN: Ввод: Пример определения возможностей устройства.

Ссылки:

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 presentn";
        Buffer += "The digitizer supports " + pTouchCapabilities->Contacts.ToString() + " 
              contactsn";

        TouchOutputTextBlock->Text = Buffer;
    }
}

Пример 3. Образец пользовательского интерфейса Windows* для идентификации сенсорных возможностей

Веб-приложения

Для Internet Explorer используйте свойство msMaxTouchPoints:

Тест сенсорных возможностей оборудования:
If (navigator.msMaxTouchPoints) {…}

Тест многоконтактных сенсорных возможностей оборудования:
If (navigator.msMaxTouchPoints >1) {…}

Получение максимального числа точек прикосновения, поддерживаемого оборудованием:
Var touchPoints = navigator.msMaxTouchPoints;

Для браузеров Chrome и Safari используйте следующее (то же, что и ранее, но замените свойство msMaxTouchPoints на maxTouchPoints):

var result = navigator.maxTouchPoints;

Веб-приложения несколько сложнее использовать для проверки сенсорных устройств. Хотя некоторые функции прекрасно работают в некоторых браузерах, другие сообщают о поддержке сенсорных возможностей, когда на самом деле это не так, например, если сам браузер поддерживает сенсорные функции, он может отобразить, что они доступны, даже если устройство их не поддерживает.

Обратите внимание, что метод MaxTouchPoints возвращает 0 в браузере IE 10 (настольные ПК) под управлением Windows 7.

Ссылки:

Дизайн пользовательского интерфейса для сенсорных устройств Ultrabook

Приложения, созданные для устройств Ultrabook, должны обрабатывать жесты, такие как нажатия, сдвиги, масштабирование и т.д. Приложения, имеющие поддержку сенсорных функций, могут иметь возможность обработки данных таких указателей, за исключением их передачи в функцию обнаружения жестов.

Новые приложения должны разрабатываться с такой степенью поддержки, что сенсорные функции будут расцениваться как основной метод ввода. Поддержка мыши и стилуса не требует дополнительных действий, однако разработчики ПО должны учитывать несколько других факторов при проектировании оптимизированных сенсорных приложений.

Таблица 6. Проектирование сенсорных приложений

Фактор Сенсорные функции Мышь/стилус

Точность

  • Область контакта пальца гораздо больше, чем одной координаты х-у.
  • Форма области контакта меняется во время движения
  • Курсор мыши отсутствует и не может помочь с выбором цели
  • Мышь/стилус дают точные координаты х-у
  • Использование клавиатуры является очевидным

Анатомия человека

  • Движения пальцев человека недостаточно точны
  • Некоторые области сенсорной поверхности могут быть трудно достижимы
  • Объекты могут быть прикрыты одним или несколькими пальцами
  • Мышь/стилус проще использовать для выполнения прямолинейных движений
  • Мышь/стилус может достичь любой части экрана
  • Вспомогательные устройства ввода не вызывают визуальную блокировку экрана

Состояние объекта

  • Сенсорная модель использует два состояния. Наличие или отсутствие прикосновения к сенсорной поверхности. Отсутствие состояния наведения указателя на объект, которое может вызвать дополнительные визуальные действия.
  • Доступны три состояния: включено, выключено, наведение (фокус)

Широкий спектр возможностей для взаимодействия

  • Мультисенсорность (многоконтактность) – поддержка нескольких точек ввода (касаний пальцами).
  • Поддержка только одной точки ввода.

Разработчики ПО должны обеспечивать соответствующую визуальную реакцию во время взаимодействия, чтобы пользователи могли знать, изучать и адаптироваться к тому, как их действия интерпретируются приложением и ОС. Визуальный ответ важен для пользователей, чтобы они могли знать об успехе их взаимодействия и совершенствовать свои возможности управления. Это может уменьшить число ошибок, помочь получить навыки использования системы и устройства ввода.

Ресурсы для разработки сенсорных приложений

Другие статьи по теме на сайте Intel Developer Zone:

  1. Сравнение техники сенсорного программирования – Пример сенсорного приложения для режима рабочего стола Windows 8
  2. Примеры сенсорных приложений для Windows* 8
  3. Примеры сенсорного кода для Магазина Windows* 8
  4. Примеры сенсорного кода для режима рабочего стола Windows* 8
  5. Адаптация приложений Win32 для режима рабочего стола Windows 8
  6. Игры-стратегии в режиме реального времени для сенсорного экрана

Другие статьи по теме на сайте MSDN

  1. Руководство по программированию сенсорного ввода для Windows 7
  2. Обзор архитектуры (Windows 7)
  3. Поиск и устранение неполадок приложений
  4. Добавление поддержки манипуляций в код, не содержащий функций управления
  5. Примеры сенсорного применения Windows
  6. Создание приложений с расширенными сенсорными функциями в Windows 8* (видео)
  7. Windows 8 SDK
  8. Ввод: Пример тестирования сенсорного прикосновения
  9. Документация для разработки приложений для рабочего стола (Windows)
  10. Обзор сенсорных жестов Windows (Windows)
  11. Приступая к работе с сенсорными сообщениями Windows (Windows)
  12. Использование функции Get PointerTouchInfo (Windows)
  13. (MSDN) Руководство по Internet Explorer 10 для разработчиков

Заключение

Разработчики, работающие над созданием сенсорных приложений, независимо от их назначения, должны четко понимать, какие прикладные интерфейсы для них доступны. В этом руководстве представлены интерфейсы, доступные для следующих сред: Windows 7 и Windows 8 (режим рабочего стола), современный пользовательский интерфейс Windows, а также работающие в веб-браузерах приложения. Наряду с тем, что использование жестов и манипуляций допускается в Windows 7, разработчики приложений должны понимать, что прикладные интерфейсы Windows 8 (предназначенные для режима рабочего стола и/или современного пользовательского интерфейса) предлагают лучшие возможности для автоматического распознавания жестов.

Разработчики, создающие сенсорные веб-приложения, обязаны сверять свой код с требованиями для IE 10, так как этот браузер имеет собственный интерфейс, который должен использоваться для обработки прикосновений, жестов и манипуляций. Другие браузеры с поддержкой Webkit также основаны на стандартах DOM 3-го уровня и имеют поддержку сенсорных событий и жестов.

В этом руководстве представлено описание взаимодействий основных жестов и манипуляций, а также некоторые правила разработки сенсорных приложений.

Об авторе

Гаэль Хофмайер – ведущий инженер по разработке приложений в корпорации Intel. Она работает над созданием технической информации, необходимой разработчикам ПО во время разработки приложений для архитектуры Intel®. В дополнение к написанию статей и документации она также принимает участие в модерации клиентских бизнес-форумов в сообществах Intel Developer Zone.

Авторская страница блога Гаель

Intel, логотип Intel, Ultrabook и Core являются товарными знаками корпорации Intel в США и/или других странах.

© Корпорация Intel, 2013 г. Все права защищены.

*Другие наименования и товарные знаки являются собственностью своих законных владельцев.

Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.