Tizen API для веб-приложений I
Используя модули Tizen Web API можно разрабатывать насыщенные Интернет-приложения с помощью таких хорошо известных языков программирования, как HTML, CSS и JavaScript. Подобно основным современным браузерам, модули Tizen Web API поддерживают самые последние достижения HTML5, такие как анимация, offline-приложения, работа с высококачественным аудио и видео. Используя стандартные возможности HTML5, веб-приложения готовы работать на различных устройствах и платформах с минимальными настройки. В дополнение к Tizen Device API мобильные приложения могут получать расширенный доступ к аппаратному обеспечению, например, к Bluetooth или NFC.
Часть 1. Tizen
Этот интерфейс прикладного программирования позволяет создавать обработчики ошибок, обрабатывать результаты выполнения асинхронных операций, передавать географические координаты телефона в приложения, осуществлять фильтрацию и сортировку данных.
Tizen API
Этот API предоставляет общую функциональность Tizen. Эти API предоставляют общие определения, используемые в Tizen Web Device API. Они включают общие вызовы, происходящие, когда операции выполняются успешно или заканчиваются неудачей. WebAPIError и WebAPIException дают информацию об ошибках платформы и интерфейсы фильтров, используемые для создания критериев отбора во время выполнения запросов.
Определения типов
FilterMatchFlag
Флаги соответствия фильтрам описываются в перечислении FilterMatchFlag
enum FilterMatchFlag { "EXACTLY", "FULLSTRING", "CONTAINS", "STARTSWITH", "ENDSWITH", "EXISTS" };
- EXACTLY - Указывает, что значение атрибута должно совпадать с указанным значением по умолчанию. Строки чувствительны к регистру.
- FULLSTRING – Построчное сравнение, значения атрибутов должны совпадать со всей строкой. Строки чувствительны к регистру
- CONTAINS - Указывает, что значение атрибута должно содержать указанную строку. Этот тип сравнения работает только со строками и без учета регистра.
- STARTSWITH - Указывает, что значение атрибута должно начинаться с указанной строки. Этот тип сравнения работает только со строками и без учета регистра.
- ENDSWITH - Указывает, что значение атрибута должно заканчиваться указанной строки. Этот тип сравнения работает только со строками и без учета регистра.
- EXISTS - Указывает, что сравнение фильтр должен соответствовать, если заданный атрибут существует.
SortModeOrder
Порядок сортировки определяется в перечислении SortModeOrder
enum SortModeOrder { "ASC", "DESC" };
- ASC – Сортировка по возрастанию
- DESC – Сортировка по убыванию
CompositeFilterType
Тип композитного фильтра задается в перечислении CompositeFilterType
enum CompositeFilterType { "UNION", "INTERSECTION" };
- UNION – композит – это объединение фильтров (оператор "OR")
- INTERSECTION – композит – это – пересечение фильтров (оператор "AND")
Проиллюстрируем сказанное на примере использования атрибута фильтра EXACTLY. Создадим проект Tizen. Добавим следующие привилегии:
Добавим скрипт в файл index.html
<script type="text/javascript"> // The following example retrieves all songs from the album "The Joshua Tree". var count = 100; var offset = 0; var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree"); function errorCB(err) { console.log( 'The following error occurred: ' + err.name); } function findCB(contents) { console.log('The Joshua Tree :' + contents.length); } tizen.content.find(findCB, errorCB, null, albumFilter, null, count, offset); </script>
AttributeRangeFilter
Фильтр AttributeRangeFilter представляет фильтр, основанный на атрибуте объекта, имеющий значения внутри определенного диапазона.
<script type="text/javascript"> var count = 100; var offset = 0; // Use the modifiedDate attribute with a range that starts today and ends in 1 day // (meaning that you search for all contents modified today) var today = new Date(); var today_begin = new Date(today.getFullYear(), today.getMonth(),today.getDate()); var today_end = new Date(today.getFullYear(), today.getMonth(),today.getDate()+1); var dateRangeFilter = new tizen.AttributeRangeFilter("modifiedDate", today_begin, today_end); function errorCB(err) { console.log( 'The following error occurred: ' + err.name); } function findCB(contents) { console.log('The contents modified today :' + contents.length); } tizen.content.find(findCB, errorCB, null, dateRangeFilter, null, count, offset); </script>
CompositeFilter
CompositeFilter представляет набор фильтров.
Композитный фильтр может быть одним из двух типов:
- The union – используется для фильтрации объектов, которые соответствуют любому из включенных фильтров
- The intersection - используется для фильтрации объектов, которые соответствуют всем фильтрам.
<script type="text/javascript"> // The following example retrieves all songs from the album "The Joshua Tree", by artist "U2". var count = 100; var offset = 0; var artistFilter = new tizen.AttributeFilter("artists", "EXACTLY", "U2"); var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree"); var filter = new tizen.CompositeFilter("INTERSECTION", [albumFilter, artistFilter]); function errorCB(err) { console.log( 'The following error occurred: ' + err.name); } function findCB(contents) { console.log('The Joshua Tree by U2:' + contents.length); } tizen.content.find(findCB, errorCB, null, filter, null, count, offset); </script>