Жизненный путь приложений для Магазина Windows: Характеристики платформы Windows 8
И снова возможности: добираемся до данных и устройств
Во время исполнения программы, даже внутри контейнера приложения, у вашего приложения достаточно места для того, чтобы играть и доставлять удовольствие пользователю. Оно может использовать множество различных элементов управления, как мы увидим в "Элементы управления, их стилизация и привязка данных" и "Коллекции и элементы управления для вывода коллекций" , настраивать их как угодно - от полной сдержанности до ослепительной яркости, и располагая их на рабочей поверхности в соответствии с вашей дизайнерской фантазией ( "Макет" ). Она может работать с такими средствами управления, как панель приложения ( "Жизненный путь приложений для Магазина Windows: Характеристики платформы Windows 8" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript"), может обрабатывать изменение состояний и данных пользователя ( "Быстрый старт" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript"), принимать и обрабатывать события указателя (pointer events), которые унифицируют методы обработки касаний, ввода данных с помощью мыши или стилуса ( "Анатомия приложения и навигация по страницам" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript") - благодаря тому, что эти способы ввода унифицированы, вы можете разрабатывать приложение в расчете на сенсорный интерфейс и получить всё остальное в качестве бесплатного бонуса; так же унифицирован ввод с экранной и физической клавиатур). Кроме того, приложения могут работать с сенсорами ( "Анатомия приложения и навигация по страницам" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript"), разнообразными мультимедийными элементами ( "Элементы управления, их стилизация и привязка данных" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript"), анимацией ( "Коллекции и элементы управления для вывода коллекций" курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript"), контрактами ( "Жизненный путь приложений для Магазина Windows: Характеристики платформы Windows 8" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой"), плитками и уведомлениями ( "Быстрый старт" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой"), могут обмениваться данными по сети ( "Анатомия приложения и навигация по страницам" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой") и работать с различными устройствами и принтерами ( "Элементы управления, их стилизация и привязка данных" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой"). Возможна оптимизация производительности приложений и расширение их возможностей посредством WinRT-компонентов ( "Коллекции и элементы управления для вывода коллекций" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой"), приложения могут адаптироваться к различным рынкам, реализуя специальные возможности, в приложениях могут применяться различные варианты монетизации, такие, как реклама, пробные версии, покупки в приложениях ( "Макет" курса "Программная логика приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript и их взаимодействие с системой").
Многие из этих возможностей и API, связанные с ними, не затрагивают конфиденциальных данных пользователя, в итоге, приложение имеет свободный доступ к ним. Это - элементы управления, различные варианты ввода данных с использованием сенсорного экрана, мыши, стилуса, ввод данных с клавиатуры, работа с сенсорами (такими, как акселерометр, измеритель угла наклона, датчик освещенности). Папки с данными приложения (локальная, перемещаемая, временная), которые создаются при установке приложения, так же доступны ему без каких-либо дополнительных усилий. Другие функциональные возможности, однако, находятся под более жёстким контролем. Как человек, который работает удалённо из дома, например, я не хочу, чтобы моя вебкамера включалась до тех пор, пока я явно не разрешу это, иначе я могу попасть на видеоконференцию в неподобающем виде. Подобные устройства и другие защищенные функции системы, контролируются на уровне брокера, который запрещает доступ, если (а) соответствующая возможность не объявлена в файле-манифесте, или (b) пользователь не дал разрешение к устройству или функции во время исполнения программы. Такие возможности перечислены в следующей таблице:
Возможность | Описание | Запрос согласия пользователя во время выполнения программы |
---|---|---|
Интернет (Клиент) (Internet (Client)) | Исходящий доступ к Интернету и к общественным сетям (включает в себя выполнение запросов к серверам и получение в ответ некоторой информации)5Обратите внимание на то, что сетевые возможности не нужно объявлять для приема push-уведомлений, так как эти уведомления получает система, а не приложение. | Нет |
Интернет (клиент и сервер) Internet (Client & Server) (надмножество для Интернет (Клиент); только одну из этих возможностей нужно объявить) | Исходящий и входящий доступ к Интернету и общественным сетям (входящие подключения к критически важным портам всегда заблокированы) | Нет |
Частные сети (клиент и сервер) (Private Networks (Client & Server)) | Исходящий и входящий доступ к интрасетям дома или на работе (входящие подключения к критически важным портам всегда заблокированы) | Нет |
Библиотека документов (Documents Library) | Доступ для чтения и записи к области файловой системы, где хранятся документы пользователя, имеющие определенные типы файлов, объявленные с помощью сопоставления типов файлов. Требуется учетная запись организации в Магазине Windows. | Нет |
Библиотека музыки (Music Library) Библиотека изображений (Pictures Library) Библиотека видео (Video Library) | Доступ для чтения и записи к областям файловой системы, хранящим музыку, изображения, видеофайлы пользователя (все файлы). | Нет |
Съемные носители (Removable Storage) | Доступ для чтения и записи к файлам на съемных носителях для объявленных типов файлов. | Нет |
Микрофон (Microphone) | Доступ к аудиоканалу микрофона (в том числе - к микрофону на камере) | Да |
Веб-камера (Webcam) | Доступ к каналам передачи аудио-, видео-данных, изображений с вебкамеры | Да |
Расположение (Location) | Доступ к определению местоположения пользователя с использованием GPS | Да |
Бесконтактное взаимодействие (Proximity) | Возможность соединяться с другими устройствами по технологии Near Field Communication (NFC, коммуникация ближнего поля) | Нет |
Корпоративная аутентификация (Enterprise Authentication) | Доступ к ресурсам интрасети предприятия, которым требуются доменные учетные данные. Для большинства приложений эта возможность не требуется. Требуется учетная запись организации в Магазине Windows. | Нет |
Общие сертификаты пользователей (Shared User Sertificates) | Доступ к программным и аппаратным (смарт-карты) сертификатам. Требуется учетная запись организации в Магазине Windows. | Да, при этом пользователь должен выбрать сертификат, вставить смарт-карту и так далее. |
Когда требуется решение пользователя, при вызове соответствующего API для доступа к ресурсу, пользователю будет задан вопрос (Рис. 1.7.). Если пользователь ответит на вопрос утвердительно, работа продолжится, если отрицательно - вызов API возвратит ошибку. Приложение должно быть соответствующим образом подготовлено для обработки подобных ошибок API, должно соответствующим образом себя вести.
увеличить изображение
Рис. 1.7. Типичное диалоговое окно, используемое для того, чтобы узнать решение пользователя, которое автоматически запускается при первой попытке приложения использовать возможность, доступную через брокера. Для каждого приложения это происходит лишь однажды, однако, пользователь может поменять решение, воспользовавшись командой Разрешения (Permissions) чудо-кнопки Параметры.
Может ли приложение Карты использовать сведения о вашем местонахождении? (Can Maps use you locations?)
Разрешить (Allow)
В самом начале работы над приложением, вы должны помнить о манифесте и о возможностях - если вы забудете о них, вы столкнетесь с ошибками API, даже написав отличный код (или скопировав его из рабочего примера). В ранний период создания первых приложений для Магазина Windows в Microsoft, мы постоянно забывали объявить возможность Интернет (клиент), в итоге, не работала даже загрузка удалённого изображения в элемент img или выполнение обычного запроса к веб-сервису. Теперь система оповещения о подобных ошибках работает гораздо лучше, но если вы столкнетесь с какой-нибудь таинственной проблемой в коде, в работоспособности которого вы уверены, особенно, в короткие ночные часы, проверьте манифест!
Мы в этом курсе, помимо раздела манифеста, посвященного возможностям, встретимся и с другими его разделами. Например, возможности Библиотека документов и Съемные носители понадобятся вам для того, чтобы задать специфические типы файлов для вашего приложения (в противном случае доступ, как правило, запрещен). Так же манифест содержит раздел URI содержимого (Content URI): особые правила, которые задают, какие URI являются известными и доверенными для вашего приложения и могут, таким образом, применяться в его целях. Манифест, кроме того, является тем местом, где вы объявляете предустановленную ориентацию, фоновые задачи (background tasks) (наподобие проигрывания аудио или поддержки связи в реальном времени), особенности реализации контрактов (таких, как указание страницы в вашем приложения, которая должна быть открыта, если приложение запущено посредством контракта), настраиваемые протоколы и внешний вид плиток и уведомлений. Вы и ваше приложение станете добрыми друзьями с манифестом.
Последнее замечание, которое можно сделать о возможностях, заключается в том, что хотя программный доступ к файловой системе управляется соответствующей возможностью, пользователь всегда может направить ваше приложение в иную, несистемную, область файловой системы, и указать ему любой тип файла - с использованием пользовательского интерфейса средства работы с файлами (Рис. 1.8). Это явное действие пользователя, другими словами, воспринимается вашим приложением как разрешение на доступ к конкретному файлу или папке (в зависимости от того, что именно вы у него запрашиваете). Как только ваше приложение получит доступ, вы можете использовать соответствующие API для сохранения этого разрешения, в итоге, приложение сможет получить доступ к этим файлам и папкам, когда будет запущено в следующий раз.
В итоге, устройство файла-манифеста и уровня брокеража позволяет вам быть уверенным в том, что пользователь всегда в состоянии проконтролировать важные для него особенности доступа к системе, и, так как объявленные вами возможности перечисляются на странице описания приложения в Магазине Windows, пользователь никогда не будет удивлён поведением вашего приложения.
увеличить изображение
Рис. 1.8. Использование пользовательского интерфейса средства выбора файлов для доступа к различным частям файловой системы из приложения для Магазина Windows, в частности, к таким, как корневой каталог диска (но не к защищенным системным папкам). Это можно сделать, прикоснувшись к стрелке, направленной вниз около элемента "Файлы" ("Files").