Опубликован: 12.12.2015 | Доступ: свободный | Студентов: 663 / 93 | Длительность: 15:42:00
Лекция 15:

Tizen API для веб-приложений I

< Лекция 14 || Лекция 15 || Лекция 16 >

Используя модули 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" };
  1. ASC – Сортировка по возрастанию
  2. 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>


Рис. 15.2.
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>


Рис. 15.3.
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>


Рис. 15.4.

https://developer.tizen.org/dev-guide/2.3.0/org.tizen.web.apireference/html/device_api/mobile/tizen/tizen.html

< Лекция 14 || Лекция 15 || Лекция 16 >