В последнее время огромную популярность приобретают различные беспроводные устройства доступа в internet. Достаточно упомянуть, что 2/3 населения Российской Федерации владеют сотовыми телефонами и потенциальная аудитория посетителей internet с мобильных устройств шире, чем обычных посетителей, пользующихся компьютерами. В отличие от классического браузера, который общается с сервером по протоколу http, мобильные устройства используют протокол wap (wireless application protocol). Протокол wap определяет набор правил, которому должны следовать как wap-приложения, так и мобильные устройства.
В настоящий момент для создания wap-страниц (аналог html-страниц для мобильных устройств) используется либо язык разметки wml (wireless markup language), либо xhtml. Оба языка разметки основаны на xml и подчиняются правилам форматирования xml-документа. xhtml поддерживается не всеми сотовыми телефонами, поэтому в данной статье будет рассмотрен wml.
Здесь не будут описываться стандартные теги, особенно те которые не отличаються от тэгов, используемых при создании обычных html-страниц. Будет рассмотрена структура wml документа, и взаимодействие php-скриптов с wml.
Глава 1 "Структура wml документа"
Вся информация в wml содержится в так называемых деках. Дек — это минимальный блок данных, который может быть передан сервером. В деках находяться карты (< card>) в одной деке всегда должна быть хоть одна карта, но может быть и несколько - ограничений нет.
Простая wml страница взятая с wap.siemens.com.
< ?xml version="l.0"?> < !doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml"> < wml> < card title="siemens"> < p> < a href="http://communication-market.siemens.de/wap">games and more< /a>< br/> < a href="http://communication-market.siemens.de/wap/countries.asp?content=rtlo">sounds and graphics< /a>< br/> < a href="/content/index.php?a=a_this&r=">this is siemens< /a>< br/> < a href="/content/index.php?a=a_ff_kf_kffy2004&r=">key figures< /a>< br/> < a href="/content/index.php?a=a_journal&r=">siemens journal< /a>< br/> < a href="/contact/index.php">contact< /a>< br/> < img src="http://server-uk.imrworldwide.com/cgi-bin/wapcount?" alt=""/> < /p> < /card> < /wml>
< code>< ?xml version="l.0"?> < /code>- содержит стандартную инструкцию, указывающую, что перед нами xml-документ. Этот тэг так же указывает на версию языка xml, необходимую для будующих расширений языка.
< !doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
- объявляет тип документа — wml и адрес, по которому расположен файл с dtd. dtd (document type definition) - это файл с описанием типа документа, отделённое от главного xml-документа и определяющий набор правил для xml-документа в котором стоит на него ссылка. Эти две строки предваряют собственно элементы языка и должны содержаться в каждом wml-файле.
wml - открывающий тэг, аналогичен по смыслу тегу html в html-документах.
card - собственно тэг начинающий карту, соответствуюет тэгу body в html-документе, но в отличие от body может поторяться в документе несколько раз.
Примечание
Новая строка начинается с тэга < br/>. Важно отметить, что слеш в конце тэгов, не имеющих завершающего тэга обязателен в xml документах, иначе анализатор сообщает об ошибке. Все дополнительные данные закрываються двойными ковычками (title="hello!").
Дека - < wml>< /wml>
Карта - < card>< /card>
Пример страницы с несколькими картами:
< ?xml version="l.0"?> < !doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml"> < wml> < card title="card1"> < a href="#card2">go to card2< /a>< br/> < /card> < card title="card2"> < a href="#card1">return card1< /a>< br/> < /card> < /wml>
Как видно ничего сложного! Однако следует помнить, что имеется ограничение на общий размер wml страницы около 5~10 кб, в зависимости от модели телефона и оператора сотовой связи. Поэтому количество карт не должно превышать разумного предела.
Глава 2 "Динамическая генерация". Конфигурирование серверов. mime тип.
Для того, чтобы обычный web-сервер, например, apache, превратить в wap-сервер, необходимо в конфигурационном файле httpd.conf отыскать секцию addtype и добавить следующую директиву
addtype text/vnd.wap.wml .wml.
При динамической генерации wml-страницы, браузеру необходимо отправить заголовок, сообщающий, что он имеет дело не с обычной html-страницей, а с ресурсом, предназначенным для мобильных устройств. Это можно осуществить при помощи функции header
< ?php # Отсылаем заголовок который "обьясняет" клиенту ,что это wml документ header("content-type: text/vnd.wap.wml"); ?>
Так сформировать wml страницу при помощи php можно примерно следующим образом
< ?php # Отсылаем заголовок который "обьясняет" клиенту ,что это wml документ header("content-type: text/vnd.wap.wml"); #Выводим саму страницу print ' < ?xml version="1.0" encoding="utf-8"?> < !doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml"> '; print ' < wml> < card id="id1" title="card1"> hello! people this is my first wml page! < /card> < /wml> '; ?>
Результаты работы wml-страниц можно просматривать при помощи следующих браузеров: opera, winwap, klondike wap browser.
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.