Рассмотрение Peri-сценария YellowPagesWML.pl
Рассмотрение Peri-сценария YellowPagesWML.pl
После того как пользователь указывает данные о компании в приложенииYellowPages, программа запускает Peri-сценарий для поиска и нахождения компаний, отвечающих введенным требованиям. В реальном приложении сценарийвзаимодействовал бы с базой данных для получения компаний, данные которыхсоответствуют условиям поиска. Затем сценарий создавал бы WML-карты, обеспечивающие отображение на экране результатов поиска в удобном виде. Следующий сценарий, YellowPagesWML.pl, формирует одни и те же результаты поиска, независимо от данных запроса (из-за отсутствия доступной базы данных с адресами компаний). Тем не менее, вы должны отметить для себя, что сценарийсоздает карты, которые для обеспечения возможности автоматического звонка вкомпанию, отображаемую на экране сотового телефона пользователя, используют функции интерфейса приложений для беспроводной телефонной связи(WTAI - Wireless Telephony Application Interface). Кроме того, при просмотре информации по нескольким компаниям приложение может выполнять циклические перемещения, во многом напоминающие навигацию по списку с гиперсвязями. Peri-сценарий YellowPagesWML.pl реализуется с помощью следующего программного кода: #!/usr/bin/perl require 'DeckUtils.pl'; %cgiVars = &AppUtils::ParseCGIVars(); $BizName = $cgiVars{"BizName"}; $ZipCode = $cgiVars{"ZipCode"}; $CityName = $cgiVars{"CityName"}; $StateName = $cgiVars{"StateName"}; $Online = $cgiVars{"Online"}; #Do processing here... $Deck = "Content-type: text/vnd.wap.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=\"Result1\"> <do type=\"accept\" label=\"Next\"> <go href=\"#Result2\" /> </do> <p align=\"left\" mode=\"nowrap\"> Bridget's Boutique<br/> 1234 Main Street<br/> Cedar City, UT<br/> <a href=\"wtai://wp/mc;14355551212\" title=\"Call\">1-435-555-1212</a>
</p> </card> <card id=\"Result2\"> <do type=\"accept\" label=\"Next\"> <go href=\"#Last\" /> </do> <p align=\"left\" mode=\"nowrap\"> Abigail's Antiques<br/> 1234 Main Street<br/> Cedar City, UT<br/> <a href=\"wtai://wp/mc;14355551212\" title=\"Call\">1-435-555-1212</a> </p> </card> <card id=\"Last\"> <do type=\"accept\" label=\"Done\"> <go href=\"http://waplib.com/YellowPages /YellowPages.wml\" /> </do> <p align=\"left\" mode=\"wrap\"> For purposes of this example all lookups return the same results. </p> </card> </wml>"; print $Deck;
Работа сценария начинается с анализа параметров, передаваемых ему WML-страницей YellowPages.wml. Далее, строка Do processing here (Выполнять обработку здесь) соответствует месту, где сценарий в обычных условиях взаимодействовал бы с программой базы данных.
Затем сценарий создает три WML-карты с именами Resultl (Результат!), Result2и Last (Последняя). Приложение вначале выводит на экран карту Resultl, отображающую экранную кнопку Next (Далее). Если пользователь выберет кнопкуNext (Далее), приложение загрузит карту Result2. Карта Result2 также отображает кнопку Next (Далее), которая предоставляет связь с картой Last. Если вывыберете карту Last, то обнаружите, что она отображает кнопку Done (Выполнено), возвращающую пользователя обратно в начало приложения YellowPages.
Внутри каждой карты приложения присутствует элемент анкера <а>, которыйобеспечивает возможность автоматической связи с компанией по сотовому телефону:
Код wp определяет, что функция находится в общей библиотеке, а код тс представляет собой имя выполняемой функции (make call - вызов по телефону).