Posted on 28. November 2018

Встраивание ввода данных в UWP приложения

Одной из наименее известных возможностей UWP приложений является встраивание ввода данных. Это будет особенно полезно, если Вы хотите предоставить пользователям ознакомительную инструкцию, мгновенную обратную связь с помощью дополнительных технологий или реализовать вкладку Help в приложении. Рассмотрим подробнее преимущества пространства имен Windows.UI.Input.Preview.Injection и его внедрение в приложения.

Поддерживаемые типы ввода

Windows 10 поддерживает несколько типов ввода. В настоящее время это:

  • Геймпад
  • Клавиатура
  • Мышка
  • Стилус
  • Сенсор

В этой статье будут приведены примеры ввода с помощью клавиатуры и мышки.

Возможность внедрения ввода

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

Добавление этой возможности простое и понятное. Откройте Package.appxmanifest как XML-файл и добавьте следующее описание пространства имен в Package элемент:

 

<Package
   ...
   xmlns:rescap="http://schemas.microsoft.com/appx/manifest /foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp rescap">

 

 

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


  <Capabilities>
       <Capability Name="internetClient" />
       <rescap:Capability Name="inputInjectionBrokered" />
</Capabilities>


Основы

Основным классом в Windows.UI.Input.Preview.Injection является InputInjector. Вы можете создать его образец, вызвав статический TryCreate метод. После чего Вы можете вызвать соответствующие методы для каждого типа ввода:

 

var inputInfo = new InjectedInputMouseInfo();
...
InputInjector inputInjector = InputInjector.TryCreate();
inputInjector.InjectMouseInput(new[] { inputInfo });

 

 

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

Ввод с мышки

Вы можете подготовить информацию ввода с помощью мышки, используя InjectedInputMouseInfo класс. Чтобы двигать мышкой, используйте DeltaX и DeltaY свойства:

 

var info = new InjectedInputMouseInfo();
info.MouseOptions = InjectedInputMouseOptions.Move;
info.DeltaY = 100; //move down 100 points

 

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

 

var down = new InjectedInputMouseInfo();
down.MouseOptions = InjectedInputMouseOptions.LeftDown;

var up = new InjectedInputMouseInfo();
up.MouseOptions = InjectedInputMouseOptions.LeftUp;

InputInjector inputInjector = InputInjector.TryCreate();
inputInjector.InjectMouseInput(new[] { down, up });

 

Вы также можете имитировать как вертикальный, так и горизонтальный скрол мышки, используя Wheel и HWheel. Вы можете указывать расстояние прокрутки, используя свойство MouseData:

 

var info = new InjectedInputMouseInfo();
info.MouseOptions = InjectedInputMouseOptions.Wheel;
info.MouseData = 500; //scroll up

InputInjector inputInjector = InputInjector.TryCreate();
inputInjector.InjectMouseInput(new[] { info });

 

Прокрутка - это легко. Но как насчет прокрутки вниз?

 

info.MouseData = -500; //compile time error!

 

Обратите внимание, что свойство MouseData - это uint единица, которой нельзя присвоить отрицательные значения.

 

unchecked
{
    info.MouseData = (uint)-500; //scroll down
}

 

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

Ввод с мышкой также содержит свойство TimeOffsetInMilliseconds, которое можно установить для задержки отдельных действий. Это свойство рекомендуется для правильной имитации операций, таких как двойной щелчок.

Ввод с клавиатуры

Класс InjectedInputKeyboardInfo является базой для внедрения ввода с клавиатуры. Наиболее важное свойство - VirtualKey, которое указывает, к какому ключу относится ввод. Используя KeyOptions, Вы можете указывать дополнительные опции, такие как симуляция key up события.

Следующий образец показывает строку «привет» в активном поле ввода:

 

InputInjector inputInjector = InputInjector.TryCreate();
foreach (var letter in "hello")
{
    var info = new InjectedInputKeyboardInfo();
    info.VirtualKey = (ushort)((VirtualKey)Enum.Parse(typeof(VirtualKey),
                                 letter.ToString(), true));
    inputInjector.InjectKeyboardInput(new[] { info });
    await Task.Delay(100);
}

 

В конце foreach узла находится Task.Delay вызов. Это гарантирует, что повторные нажатия клавиш не регистрируются как одно нажатие.

Образец кода

Исходный образец кода доступен на GitHub.

Application Sample

В заключении

В этой статье мы подробно изучили пространство имен Windows.<wbr />UI.<wbr />Input.<wbr />Preview.<wbr />Injection и посмотрели, как его можно использовать для имитации ввода с разных типов устройств. Не смотря на то, что эта опция не так часто используется, она все же полезна в UWP API.

Дополнительная нформации



Exception: Collection was modified after the enumerator was instantiated.
Posted on 6. October 2018

6 лучших способов увеличить оценки, отзывы и фидбеки для Вашего приложения

Один из часто задаваемых вопросов: «Как привлечь клиентов и увеличить количество оценок и отзывов в приложении?»

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

6 советов, которые Вам помогут:

Просите отзывы

Будьте настойчивыми! Спрашивайте пользователей об их мнение и опыте использования. 

1) Спрашивайте в приложении

Добавьте в Ваше приложение окно оценки и голосования или же напрямую запускайте страницу оценок и отзывов в Microsoft Store. Вы также можете использовать Feedback Hub для отзывов Ваших пользователей.

2) Спрашивайте с помощью push-уведомлений

 

Отправляйте toast- или push-уведомления с просьбой оставить оценку и отзыв. Чтобы привлекать только тех пользователей, которые еще не оценили Ваше приложение, сначала создайте сегмент с определением «Has rated == false», а затем настройте push-уведомления.


 

3) Спрашивайте в Microsoft Store

Добавьте просьбу оставить оценку и отзыв в разделе «Что нового в этой версии» или в описании Вашего продукта в Microsoft Store. После того, как Вы расскажете об обновлениях, сообщите пользователям, что Вы ждете их отзывов. К примеру: «Пожалуйста, помогите улучшить приложение, оставьте Вашу оценку и отзыв».

Отвечайте пользователям

Ответы на отзывы дают понять, что Вы заботитесь о пользователях и продолжаете улучшать Ваше приложение.

4) Отвечайте на отзывы в Store 

Пользователи должны знать, что их мнение важно. Вы можете отвечать на их отзывы через API или с панели инструментов. Подробнее об этом здесь

5) Отвечайте прямо на отзыв

Хотите отправлять конкретные комментарии? Используйте Feedback Hub в Вашем приложении. Вы можете отвечать публично или приватно и уведомлять о состоянии любой жалобы пользователя, над которой Вы работаете.

Ваши ответы должны быть краткие (не больше 1000 символов), вежливые и точные. Подробнее об ответах на отзывы читайте здесь.

Отвечая на отзывы и письма, делайте Ваши ответы вежливыми и уважительными, потому что пользователи имеют право подать жалобу в Microsoft Store на некоректный и оскорбительный ответ.

6) Работайте над улучшениями

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

Эти советы помогут Вам сообщить пользователям о важности их мнения!



Exception: Collection was modified after the enumerator was instantiated.
Posted on 28. May 2018

Технология отслеживания глаз по API

Создание приложений и захватывающих игр совместимых с технологией отслеживания глаз по API

В прошлом году, вместе с обновлением Windows 10 Fall Creators Update, Microsoft представили функцию Eye Control, которая позволяет пользователям управлять Windows устройствами с помощью глаз. Microsoft продолжает разрабатывать еще больше функций для людей с ограниченными возможностями, таких как Стив Глисон, чтобы предоставить им перемены в лучшую сторону. Однако команда Microsoft понимает, что выполнение миссии - «предоставить возможности каждому человеку и организации на планете достичь большего» - выходит за рамки одного продукта. Все начинается с чего-то более фундаментального: создание платформы, позволяющей всем разработчикам создавать продукты, которые помогут улучшить жизнь людей и оказать положительное влияние.

В этом блог посте, Microsoft рады представить Вам следующий шаг в улучшениях возможностей по отслеживанию глаз. В дополнение к улучшению функции шаринга с помощью Eye Control и расширенной аппаратной поддержки Eye Tracker, Microsoft представляет Вашему вниманию Windows API с функцией отслеживания глаз и открытый исходный код, который позволяет всем разработчикам приложений создавать более доступные и захватывающие приложения, которые можно использовать с помощью отслеживания глаз.

Давайте изучим все детали.

Новые функции в Eye Control

С момента выпуска функции Eye Control, команда Microsoft продолжала работать с Microsoft Research и людьми, с заболеванием БАС (боковой амиотрофический склероз) или ЗДН (заболевание двигательных нейронов). Microsoft тщательно изучили отзывы людей с заболеванием БАС, а также пользователей, которые хотят управлять Windows устройствами с помощью глаз. Эти отзывы значительно повлияли на выбор набора функций, которые были недавно добавлены в Eye Control, и которые сделали еще один шаг на пути к полному управлению компьютеров с помощью оптической оси глазного яблока. Вот три области, которые были улучшены на основе отзывов и сотрудничества с людьми с ограниченными возможностями:
  • Более легкая навигация: Microsoft добавили больше возможностей управления мышью, например, скроллинга любого приложения или веб-сайта, а также ускоренный клик по контенту. 
  • Ускоренное перемещение: Более быстрый доступ к меню Start, Task View, калибровке устройства и настройкам Eye Control, которые теперь доступны с панели управления Eye Control.
  • Возможность поставить на паузу в любой момент: Приостановка панели управления при просмотре фильма, чтении или просто перерыве во избежания случайных взаимодействий с глазами.

Панель управления Eye Control в Обновлении Windows 10 April 2018 Update

Функция Eye Control еще находится в режиме предварительного просмотра, и Ваши отзывы помогут сделать ее намного лучше. Если у Вас есть какие-либо пожелания по улучшению продуктов и услуг, Вы можете оставить их на форуме Accessibility User Voice Forum или Windows Feedback Hub. Если у Вас возникли трудности с использованием Eye Control, свяжитесь с Disability Answer Desk.

Расширенная поддержка аппаратуры для отслеживания глаз

В прошлом году, команда Microsoft объявила о сотрудничестве с компанией Tobii для расширения количества аппаратных средств и игровых трекеров под управлением Windows, которые будут поддерживать отслеживание глаз. В этом году, Microsoft представили своего второго партнера - компанию EyeTech.

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

Новые Windows технологии отслеживания глаз по API

В дополнение к улучшениям Eye Control и более широкой аппаратной поддержке отслеживания глаз, Microsoft рады представить новые Windows инструменты для всех разработчиков, с помощью которых они смогут стать частью команды по работе с технологиями отслеживания глаз.

Обновление Windows 10 April 2018 Update включает в себя Windows API отслеживания глаз - такой же набор API, который был использован для создания Eye Control. Эти API предоставляют поток данных отслеживания глаз, который указывает, куда именно смотрит пользователь в окне приложения. Microsoft также выпустили Gaze Interaction Library с открытым исходным кодом в Windows Community Toolkit, чтобы упростить интеграцию взаимодействий взгляда в Ваших UWP приложениях. Microsoft начинает сотрудничать с такими компаниями, как Tobii и EyeTech, чтобы работать над улучшениями этой библиотеки с открытым исходным кодом, и если у Вас есть какие-либо рекоммендации, сделайте Ваш вклад в сообществе разработчиков, ориентированных на возможности отслеживания глаз.

Команда Microsoft уже видит результаты того, как их партнеры используют Windows API и делают приложения с технологией отслеживания глаз общедоступными. Одним из лучших примеров является Snap + Core First by Tobii Dynavox, коммуникационное приложение на основе символов, которое помогает людям легко общаться друг с другом. Microsoft также видит, что взаимодействие с отслеживанием глаз создает более захватывающий игровой опыт. И при поддержке UWP интеграции с Unity, Вы можете использовать эти API в Вашей новой или уже существующей UWP Unity игре.

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

Начните разрабатывать!

Microsoft с нетерпением ожидает сотрудничества с разработчиками, чтобы предоставить каждому пользователю богатую экосистему приложений и наилучший опыт отслеживания глаз, и они будут рады видеть Ваши проекты. Здесь Вы можете ознакомиться с ресурсами, которые помогут начать работу:

Документация
API Ссылки / Код
Новые API технологии по отслеживанию глаз, оборудывание, Eye Control, опыт работы с приложениями также были представлены на ежегодной бизнес-конференции Build. Если Вы хотите узнать больше, пожалуйста, посетите www.microsoft.com/accessibility.


Exception: Collection was modified after the enumerator was instantiated.
Posted on 1. September 2010

Windows Phone 7 и Facebook API

Posted on 26. July 2010

Flickr API для Silverlight приложений

Использовать Flick API из Silverlight приложений становиться проще с использованием открытого проекта Flickr API for Silverlight. В отличии от .Net врапера, который требует много пользовательской сериализации и запросов к сервису, Flickr API для Silverlight работает в комплекте с WCF для запуска запросов. Решение разработано только для Silverlight технологии.

Проект находится в стадии раннего развития и имеет небольшое количеством проверенніх методов.

Страница Flickr API for Silverlight.



Exception: Collection was modified after the enumerator was instantiated.
Posted on 20. July 2010

Обзор PivotViewer Silverlight Control API

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

Andrew Cox и Ralph Ruiz рассказали о Silverlight PivotViewer Control'е и продемонстрировали как встроить коллекцию данных в веб страницу. Кроме этого они продемонстрировали события, дизайн, как делать выборки данных и др. PivotViewer – это новый способ представления данных с использованием виртуализации в Silverlight контроле.

Ресурсы, которые помогут начать работать с PivotViewer:

  • Silverlight PivotViewer Download и техническая документация: here
  • набор инструментов для разработчиков: here
  • форум PivotViewer: here
  • пример использования в реальном проекте: Hitched


Exception: Collection was modified after the enumerator was instantiated.