Опубликован: 10.04.2013 | Доступ: свободный | Студентов: 440 / 9 | Длительность: 16:52:00
Специальности: Программист
Лекция 2:

Состояния, параметры, файлы и документы

Обновление "Here My Am!"

Для того, чтобы собрать воедино некоторые темы, изученные в этой лекции, дополнительные материалы включают в себя новую версию приложения "Here My Am!", в которую внесены следующие изменения и дополнения (в основном, в страницу pages/home/home.js, если не указано иное):

  • Теперь программа включает в себя Bing Maps SDK (http://msdn.microsoft.com/library/hh846481.aspx), таким образом, соответствующий элемент управления является частью пакета приложения, а не загружается с удаленного ресурса. Это устраняет необходимость в iframe, который мы использовали для поддержки карты, теперь весь код из html/map.html можно переместить в js/default.js. Обратите внимание на то, что для того, чтобы запустить этот пример в Visual Studio, вам нужно самостоятельно загрузить и установить этот SDK.
  • Вместо копирования изображения, полученного с камеры, в область данных приложения, теперь оно копируется в папку HereMyAm в библиотеке изображений. Объявлена возможность Библиотека изображений (Pictures Library).
  • Вместо сохранения пути к последнему полученному изображению, который используется, когда приложение было остановлено и перезапущено, StorageFile сохраняется в Windows.Storage.AccessCache для того, чтобы гарантировать возможность программного доступа к изображению в будущем.
  • На панель приложения добавлена команда, которая позволяет вам использовать средство выбора файлов для выбора изображения, вместо того, чтобы полностью полагаться на возможности камеры. Это так же позволяет вам использовать приложение для работы с камерой, если хотите. Обратите внимание, что в этом случае мы используем собственный settingsIdentifier со средством выбора файлов, что отличает его от обычного средства выбора файлов для существующих изображений.
  • Другая команда панели приложения позволяет вам выбирать из последних снимков, полученных с камеры. По умолчанию команда направлена на нашу папку в библиотеке изображений, она использует другой settingdIdentifier.
  • Дополнительные команды – О программе (About), Помощь (Help) и Заявление о конфиденциальности (Privacy Stating) включены в панель параметров с использованием события WinJS.Application.onsettings (смотрите js/default.js). Первые две отображают содержимое из приложения, в то время, как третья команда загружает веб-содержимое в iframe. Все страницы параметров можно найти в папке проекта html.

Что мы только что изучили

  • Преемственность или сохранение состояния важны в приложениях для Магазина Windows для поддержания состояния непрерывности работы приложения между сеансами работы, даже если приложение приостановлено или остановлено.
  • Данные приложения – это данные состояния сеанса, локальные, временные и перемещаемые состояния, которые привязаны к существованию приложения. Доступ к ним может получить только приложение.
  • Пользовательские данных хранятся в местах, отличных от мест хранения данных приложения (таких, как библиотеки музыки, изображений, видео, документов, вместе со съемными носителями информации) и существуют независимо от любого отдельно взятого приложения. Открывать пользовательские файлы и манипулировать ими могут различные приложения.
  • Доступ к данным приложения можно получить посредством API Windows.Storage.ApplicationData, что включает в себя и доступ к структурированным контейнерам параметров, и к данных, основанных на файлах. Так же доступны дополнительные API, наподобие IndexedDB и HTML5 localStorage.
  • Важно задавать версии состоянию приложения, особенно если используется перемещаемое состояние, от управления версиями зависит то, как служба перемещения данных будет направлять данные на устройства, на которых установлены определенные версии приложений.
  • Размер перемещаемого состояния ограничен квотой (она предоставляется API), при превышении которой Windows не будет перемещать данные. Для перемещения больших объемов данных, в том числе – пользовательских, можно использовать сервисы наподобие SkyDrive.
  • Обычный период перемещения данных – 30 минут или менее. Отдельный или составной параметр, имеющий имя "HighPriority", до тех пор, пока его размер не будет превышать 8 Кб, может перемещаться в течение минуты.
  • Классы WinRT StorageFolder и StorageFile – это основные объекты для работы с папками и файлами. Все виды программного доступа к файловой системе, начинаются, на самом деле, со StorageFolder. В противном случае, пользователь может указать на файл или папку с использованием API средства выбора файлов, который, на самом деле, является первым вариантом выбора для доступа к файлов.
  • Большие двоичные объекты (blob) – это удобные средства для работы с файлами, как и WinRT API в WindowsStorage.FileIO и PathIO. WinJS предлагает некоторые упрощенные методы для чтения и записи текстовых файлов (особенно они полезны при работе с состоянием приложения), так же поддерживается FileReader из HTML5.
  • WinRT предлагает средства шифрования с помощью Windows.Security.Cruptography, а так же встроенный механизм сжатия данных в Windows.Storage.Compression.
  • Для использования панели параметров, приложение заполняет панель верхнего уровня, которая предоставлена Windows, собственными командами. Эти команды связаны с обработчиками, которые либо открывают гиперссылки (в браузере), либо отображают всплывающие элементы настроек с использованием элемента управления WinJS.UI.SettingsFlyout. Эти всплывающие элементы могут включать в себя любой необходимый HTML-код, в том числе – элементы iframe для загрузки удаленного содержимого.
  • Доступ к папкам пользовательских данных, таким, как медиа-библиотеки, библиотека документов, съемные носители, контролируется возможностями, объявленными в манифесте. Подобные возможности нужно объявлять лишь тогда, если приложению нужен доступ к файловой системе таким способом, для которого не подходит применение средства выбора файлов.
  • Средство выбора файлов – это инструмент, с помощью которого пользователи могут выбирать файлы из любого безопасного расположения в файловой системе, а так же – файлы, предоставляемые другими приложениями (это могут быть удаленные файлы, файлы, хранящиеся в базах данных, даже те, которые не существуют в виде файловых записей в локальной файловой системе). Одна из наиболее удобных и мощных функций приложений для Магазина Windows – это возможность выбора файлов непосредственно из других приложений, в том числе – файлов, которые приложения могут генерировать по запросу.
  • Объекты типа StorageFolder обеспечивают обширные возможности по поиску в их содержимом и по доступу к нему с помощью файловых запросов. Запросы могут быть простыми и сложными и могут задействовать строки поиска Advanced Query Syntax (AQS).
Вадик Елетин
Вадик Елетин
Россия, г. Санкт-Петербург
Николай Жигульский
Николай Жигульский
Россия, Тверь, Тверской государственный технический университет