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>



