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

         

Подробнее о приложении PhoneBook.hdml



Подробнее о приложении PhoneBook.hdml

Как и приложение формата WML, дека PhoneBook.hdml позволяет пользователюнайти и автоматически дозвониться по номеру, хранящемуся в телефонном справочнике в режиме «онлайн». Эта дека имеет следующий исходный код:

&ltHDML Version=3.0 Markable=True TTL=0&gt

&ltChoice Name=Main Method=Alpha&gt

&ltCenter&gtPhone Book&ltBR&gt

&ltCE Task=GO Dest=PhoneBookAF.hdml Label=A-F&gtA - F &ltCE Task=GO Dest=PhoneBookGM.hdml Label=G-M&gtG - M &ltCE Task=GO Dest=PhoneBookNS.hdml Label=N-S&gtN - S &ltCE Task=GO Dest=PhoneBookTZ.hdml Label=T-Z&gtT - Z

&lt/Choice&gt

&lt/HDML&gt

Первый элемент сообщает браузеру (или другим программистам), какая версияязыка HDML используется приложением. Далее выражение Markable=True сообщает браузеру, что он может установить закладку в исходной деке, a TTL=0 свидетельствует о невозможности кэширования деки.

Для отображения списка диапазонов букв, из совокупности которых пользователь производит свой выбор, приложение использует элемент <Choice>. Внутри<Choice> используются элементы <СЕ> для определения деки формата HDML, которую будет загружать приложение после того как пользователь произведет выбор диапазона букв.

Если, к примеру, пользователь выберет [A-F], приложение загрузит деку PhoneBookAF.hdml, которая имеет следующий исходный код:

&ltHDML Version=3.0 TTL=0&gt

&ltChoice Name=AF Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=PhoneBook.hdml Label=Back&gt

&ltCenter&gtPhone Book&ltBR&gt &ltCenter&gt(A - F)

&ltCE Task=GO Dest=#A Label=A&gtA &ltCE Task=GO Dest=#B Label=B&gtB &ltCE Task=GO Dest=#C Label=C&gtC &ltCE Task=GO Dest=#D Label=D&gtD &ltCE Task=GO Dest=#E Label=E&gtE &ltCE Task=GO Dest=#F Label=F&gtF

&lt/Choice&gt

&ltChoice Name=A Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt






&ltCenter&gt- - A - -

&ltCE Task=Call Number="1-800-272-3623" &gtAdobe Acrobat Support &ltCE Task=Call Number="1-206-622-5500" &gtAldus Corporation

&lt/Choice&gt

&ltChoice Name=B Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt

&ltCenter&gt- - B - -

&ltCE Task=NOOP&gt &lt!-- Remove this line if you have entries for this letter --&gt

&lt/Choice&gt

&ltChoice Name=C Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt

&ltCenter&gt- - C - -

&ltCE Task=Call Number="1-613-728-8200" &gtCorel Corporation

&lt/Choice&gt

&ltChoice Name=D Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt

&ltCenter&gt- - D - -

&ltCE Task=NOOP&gt &lt!-- Remove this line if you have entries for this letter --&gt

&lt/Choice&gt

&ltChoice Name=E Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt

&ltCenter&gt- - E - -

&ltCE Task=NOOP&gt &lt!-- Remove this line if you have entries for this letter --&gt

&lt/Choice&gt

&ltChoice Name=F Key=choice Method=Alpha&gt

&ltAction Type=Soft1 Task=GO Dest=#AF Label=Back&gt &ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt

&ltCenter&gt- - F - -

&ltCE Task=NOOP&gt &lt!-- Remove this line if you have entries for this letter --&gt

&lt/Choice&gt

&lt/HDML&gt

После загрузки дека использует элементы <Choice> и <СЕ> для отображения буквА, В, С, D, Е и F вертикально на дисплее сотового телефона пользователя.В зависимости от выбора пользователя, приложение обращается к локальной карте,которая содержит информацию, касающуюся выбранной буквы.

Внутри каждой из карт приложение обеспечивает выполнение двух действий.Первым действием является предоставление пользователю возможности вернуться к предыдущей карте, в нашем случае к карте диапазона [A-F]. Вторым действием является предоставление пользователю возможности автоматически сделать звонок по выбранному номеру (приложение запоминает этот номер в переменной Choice):

&ltAction Type=Accept Icon=phone1 Label=Call Task=Call Number=$choice&gt



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



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

Когда пользователь запускает приложение PhoneBook, дека PhoneBook.wml отображает диапазоны букв. Далее по выбору пользователя загружается карта, относящаяся к выбранному диапазону. Дека PhoneBook.wml содержит следующий исходный код:

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

&ltwml&gt

&lthead&gt

&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

&ltcard id="Main"&gt

&ltp align="center"&gt

&ltb&gtPhone Book&lt/b&gt&ltbr/&gt &lta href="PhoneBookAF.wml" title="A - F"&gtA - F&lt/a&gt &lta href="PhoneBookGM.wml" title="G - M"&gtG - M&lt/a&gt &lta href="PhoneBookNS.wml" title="N - S"&gtN - S&lt/a&gt &lta href="PhoneBookTZ.wml" title="T - Z"&gtT - Z&lt/a&gt

&lt/p&gt

&lt/card&gt

&lt/wml&gt

Так же как и во всех деках формата WML, первые два ее элемента сообщают браузеру, какую из версий спецификации WAP поддерживает данное приложение. Внашем случае WML-страница поддерживает версию 1.0 языка XML и версию 1.1описания типа документа (DTD), разработанного ассоциацией WAP Forum.

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

Далее, за информацией о версиях, каждый WML-файл начинается с тега <wml>. Вконце каждого файла вводят </wml>, что означает окончание исходного кодаприложения. За <wml> следуют теги <haad> и </head>, внутри которых находитсяинформация о самом исходном коде, включая метаданные и информацию обуправлении доступом.


Многие программисты называют метаданные «данными оданных». Другими словами, в этом случае метаданные, которые считывает и обрабатывает браузер, сообщают ему, как трактовать данные.

&lthead&gt

&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

Элемент <meta> позволяет точно определить метаинформацию для исходногофайла. В нашем случае строка http-eguiv="Cache-Control" сообщает браузеру

WAR, что эта часть метаинформации используется системой кэширования памяти. Аналогично, строка content=max-age=0 сообщает браузеру, что максимальноевремя, в течение которого будет кэшироваться этот файл, равно нулю секунд;значит, браузер не будет кэшировать данные, а загружать данные с сервера каждый раз, когда они будут запрошены. Для этой книги значение нуля было выбрано для содействия процессу обучения читателя. При выборе нуля каждый раз,когда будут происходить изменения, они будут передаваться на телефон. В реальном приложении статическое меню, подобное этому, можно использовать поумолчанию в течение 30 дней. Последняя строка forua="true" определяет, чтозначение Cache-Control предназначено для телефона и не может быть измененокаким-либо промежуточным агентом.

Далее, за первыми элементами, в деке определяется единственная карта, котораяв нашем случае называется Main. Пользователь может прокручивать предложенный ему список диапазонов букв в окне браузера телефона, выбирая в конечномитоге желаемый диапазон. Для организации этого выбора в деке используетсясерия тегов <а>, каждая из которых относится к определенному диапазону. Если,к примеру, пользователь выбирает [A-F], то загружается дека PhoneBookAF.wml,исходный код которой приведен ниже:

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

&ltwml&gt

&lthead&gt



&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

&ltcard id="AF"&gt

&ltdo type="options" label="Back"&gt &ltgo href="PhoneBook.wml"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gtPhone Book&ltbr/&gt (A - F)&lt/b&gt&ltbr/&gt &lta href="#A" title="A"&gtA&lt/a&gt &lta href="#B" title="B"&gtB&lt/a&gt &lta href="#C" title="C"&gtC&lt/a&gt &lta href="#D" title="D"&gtD&lt/a&gt &lta href="#E" title="E"&gtE&lt/a&gt &lta href="#F" title="F"&gtF&lt/a&gt

&lt/p&gt

&lt/card&gt

&ltcard id="A"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gt- - A - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&ltp&gt

Adobe Acrobat Support&ltbr/&gt &lta href="wtai://wp/mc;18002723623" title="Call"&gt1-800-272-3623&lt/a&gt Aldus Corporation&ltbr/&gt &lta href="wtai://wp/mc;12066225500" title="Call"&gt1-206-622-5500&lt/a&gt

&lt/p&gt

&ltp align="center"&gt

..........

&lt/p&gt

&lt/card&gt

&ltcard id="B"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gt- - B - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&lt/card&gt

&ltcard id="C"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt



&ltp align="center"&gt

&ltb&gt- - C - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&ltp&gt

Corel Corporation&ltbr/&gt &lta href="wtai://wp/mc;16137288200" title="Call"&gt1-613-728-8200&lt/a&gt

&lt/p&gt

&ltp align="center"&gt

..........

&lt/p&gt

&lt/card&gt

&ltcard id="D"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gt- - D - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&lt/card&gt

&ltcard id="E"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gt- - E - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&lt/card&gt

&ltcard id="F"&gt

&ltdo type="options" label="Back"&gt &ltgo href="#AF"/&gt &lt/do&gt

&ltp align="center"&gt

&ltb&gt- - F - -&lt/b&gt&ltbr/&gt

&lt/p&gt

&lt/card&gt

&lt/wml&gt

Как вы видите, карта начинается с отображения в столбик букв А, В, С, D, Е и F надисплее сотового телефона с помощью тега <а>. Далее, основываясь на выборепользователя, происходит переход к локальной карте, которая находится внутриэтой деки. Приложение отображает локальную карту, используя перед ее именемсимвола фунта [#]. Внутри каждой карты приложение использует ссылку Back (Назад), которая позволит пользователю вернуться к предыдущей карте, в нашем случае - к карте AF.