Пособие по написанию WAP сайтов

         

Подробнее о приложении WapPage.wml



Подробнее о приложении WapPage.wml

Когда пользователь запускает приложение WapPage, дека WapPage.wml отображает запросы на ввод номера пользователя для ответа, номера получателя и непосредственно текстового сообщения. После того как пользователь введет эту информацию, приложение подключает сценарий языка Perl WebPageWML.pl, который и выполняет большинство необходимых действий. Дека WapPage.wml имеетследующий исходный код: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0" forua="true"/> </head> <card id="WAPPage" title="WAP Page"> <onevent type="onenterforward"> <refresh> <setvar name="SendTo" value="" /> <setvar name="MsgText" value="" /> </refresh> </onevent> <onevent type="onenterbackward"> <refresh> <setvar name="SendTo" value="" /> <setvar name="MsgText" value="" /> </refresh> </onevent> <do type="accept"> <go href="#Confirm" /> </do> <p align="center">



WAP Page<br/> </p> <p align="left"> Reply To: <input name="ReplyTo" type="text" format="NNN-NNN-NNNN" /> </p> <p align="center"> WAP Page<br/> </p> <p align="left"> Send To: <input name="SendTo" type="text" format="NNN-NNN-NNNN" /> </p> <p align="center"> WAP Page<br/> </p> <p align="left"> Message: <input name="MsgText" type="text" format="80M" /> </p> </card> <card id="Confirm"> <do type="accept" label="Send"> <go method="post" href="../waplibcgi/WapPageWML.pl"> <postfield name="ReplyTo" value="$(ReplyTo)&"/> <postfield name="SendTo" value="$(SendTo)&"/> <postfield name="MsgText" value="$(MsgText)"/> </go> </do> <p align="center"> WAP Page </p> <p align="left" mode="wrap"> Reply-To: $(ReplyTo) <br/>To: $(SendTo) <br/>Text: $(MsgText) </p> </card> </wml>
Так же как и во всех деках формата WML, первые два ее элемента сообщают браузеру, какую из версий спецификации WAP поддерживает данное приложение. Внашем случае WML-страница поддерживает версию 1.0 языка XML и версию 1.1описания типа документа (DTD), разработанного ассоциацией WAP Forum. <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
Далее, за информацией о версиях, каждый WML-файл начинается с тега <wml>. Вконце каждого файла вводят </wml>, что означает окончание исходного кодаприложения. За <wml> следуют теги <head> и </head>, внутри которых находитсяинформация о самом исходном коде, включая метаданные и информацию обуправлении доступом. Многие программисты называют метаданные «данными оданных». Другими словами, в этом случае метаданные, которые считывает и обрабатывает браузер, сообщают ему, как трактовать данные. <head> <meta http-equiv="Cache-Control" content="max-age=0" forua="true"/> </head>
Элемент <meta> позволяет точно определить метаинформацию для исходногофайла. В нашем случае строка http-eguiv="Cache-Control" сообщает браузеруWAP, что эта часть метаинформации используется системой кэширования памяти. Аналогично, строка content=max-age=0 сообщает браузеру, что максимальноевремя, в течение которого будет кэшироваться этот файл, равно нулю секунд;значит, браузер не будет кэшировать данные, а загружать данные с сервера каждый раз, когда они будут запрошены. Для этой книги значение нуля было выбрано для содействия процессу обучения читателя. При выборе нуля каждый раз,когда будут происходить изменения, они будут передаваться на телефон. В реальном приложении статическое меню, подобное этому, можно использовать поумолчанию в течение 30 дней. Последняя строка forua="true" определяет, чтозначение Cache-Control предназначено для телефона и не может быть измененокаким-либо промежуточным агентом. -
Приложение использует три переменные для отслеживания введенной пользователем информации: ReplyTo, SendTo, MsgText. За первыми строками исходного кода деки используются два элемента <onevent> для очистки значений переменных SendTo и MsgText, в случае, если пользователь будет продвигаться впередили назад в приложении, используя команды <до> и <prev>.
Событие Onenterforward происходит в том случае, когда пользователь переходит к карте с помощью команды <до>. Аналогично, когда используется команда<prev>, происходит событие Onenterbackward. После этого приложение передает сообщение сценарию языка Perl, который использует элемент <до> для возврата в начало и пользователь может послать другое сообщение, если желает. Приложение полагает, что номер в переменной ReplyTo остается прежним, поэтомуи не удаляет его каждый раз, как две другие переменные. <onevent type="onenterforward"> <refresh> <setvar name="SendTo" value="" /> <setvar name="MsgText" value="" /> </refresh> </onevent> <onevent type="onenterbackward"> <refresh> <setvar name="SendTo" value="" /> <setvar name="MsgText" value="" /> </refresh> </onevent>
Далее, в исходном коде используется элемент <input> для определения формататрех вводимых переменных. Как вы видите, элементы <input> следуют в том жепорядке, в каком они появляются на дисплее телефона. Заметьте также, что элемент <input> определяет формат для каждой из переменных. Формат NNN-NNN-NNNN для переменных SendTo и ReplyTo, к примеру, ограничивает значение каждой переменной числовыми данными в виде телефонного номера. Аналогично,формат 80М для переменной MsgText допускает ввод не более 80 символов.
После того как пользователь введет желаемые данные, приложение обратится ккарте Confirm (Подтверждение), отображающей данные, которые необходимопередать. После того как пользователь нажмет кнопку Send (Послать), дека передаст данные сценарию языка Perl WapPageWML.pl, как показано ниже:
Карта использует элемент <do> для отображения итогового сообщения и кнопкиSend на дисплее сотового телефона. Если пользователь нажимает Send, данныепередаются сценарию языка Perl.



Содержание раздела