Опубликован: 02.12.2006 | Доступ: свободный | Студентов: 1500 / 212 | Оценка: 4.12 / 3.91 | Длительность: 05:09:00
Специальности: Программист
Лекция 2:

Ввод и задачи в WML. Таймер и переменные

< Лекция 1 || Лекция 2: 123 || Лекция 3 >

Переменные WML

Переменные

Переменные сохраняют необходимые данные, когда пользователь перемещается в колоде с карты на карту. Необходимо помнить, что в именах переменных WML учитывается регистр символов.

Определение переменной с помощью команды Setvar

При выполнении задачи (такой, как go, prev и refresh ) элемент setvar можно использовать для задания переменной с определенным значением. Атрибуты name и value являются обязательными для этого элемента.

В данном примере создается переменная с именем a и значением 100:

<setvar name="a" value="100"/>

Определение переменной с помощью элемента ввода

Переменные можно задавать также с помощью элемента ввода (например, input, select, option и т.д.).

В данном примере создается переменная с именем course:

<card id="first">
<select name="course">
<option value="c">Курс по C </option>
<option value="c++">Курс по C++ </option>
<option value="c#">Курс по C# </option>
<option value="java">Курс по Java </option>
</select>
</card>

Созданная в примере выше переменная используется следующим образом:

<card id="second">
<p>Ваш выбор: $(course)</p>
</card>

Пример WML

В данном примере показано создание колоды WML с двумя картами: одной для ввода пользователя и одной - для вывода результатов.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="first" title="Курс">
<do type="accept" label="Выбор">
  <go href="#second"/>
</do>
<p>
<select name="course"> 
  <option value="c">Курс по C </option>
 <option value="c++">Курс по C++ </option>
 <option value="c#">Курс по C# </option>
 <option value="java">Курс по Java </option>
</select>
</p>
</card>
<card id="second" title="Выбор">
<p>
Курс: $(course)
</p>
</card>
</wml>

Данный код может иметь следующий вывод на экране мобильного телефона (первая карта):

----------------------------
----- Курс ----------
 Курс по C 
 Курс по C++   
 Курс по C#
 Курс по Java
Выбор 
-----------------------------

Вторая карта может выглядеть следующим образом:

--------------------------
----- Выбор ----------
 Курс: C++
---------------------------
Пояснения к примеру:
Пролог
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

Первые строки документа WML называются прологом. Пролог указывает, что это документ XML, затем определяет версию XML и используемый DTD.

Колода

Теги - <wml> ...... </wml>

Колода является документом WML и помещается между тегами <wml>.

Карты

Теги - <card> ...... </card>

Карты всегда выводятся по одной. Колода WML из примера выше содержит две карты - одну для ввода пользователя и одну для вывода результатов.

Элемент <do>

Теги - <do> ... </do>

На первой карте имеется элемент <do>, который определяет запускаемое событие. Использование атрибута type="accept" данного элемента приводит к выводу в левом нижнем углу экрана метки "Выбор".

Событие

Элемент <go> срабатывает, когда пользователь нажимает на метку "Выбор". Атрибут href="#second" данного элемента приводит к выводу на экран карты second.

Переменная

Карта second выводит значение переменной $(course) с карты first - значения переменных сохраняются при перемещении между картами.

Проверка кода WML

Для проверки правильности кода WML можно использовать синтаксический анализатор XML компании Microsoft.

Компиляция кода WML

Для тестирования и компилирования кода WML можно применять бесплатный пакет Nokia Mobile Internet Toolkit (см.. http://forum.nokia.com/). Данное программное обеспечение полностью поддерживает спецификацию WAP 2.0, включая XHTML и CSS.

Если код WML размещается на сервере IIS или Apache, то его не требуется компилировать, т.к. эту работу выполнит шлюз WAP. В этом случае нужно только поместить на сервер исходный код WML.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >