




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WAP编程入门
WAP编程前的知识准备
如果你具备以下的知识,你就可以很快地学会WAP网页的设计:
理解INTERNET基本知识,了解HTTP协议及其内涵;
熟悉WEB服务器,并理解WEB服务器与浏览器之间的交互原理、关系;
了解HTML语言规范,熟悉静态网页的设计;
熟悉JAVASCRIPT、XML语言的设计最好;
设计你的第一个WAP网页
当你了解了前面的几步的准备知识后,你就可以从网上下载编程工具,其中包
含WAP手机模拟器,用WAP手机模拟器可以测试你的WAP网页。WAP编程工具有很多,
你可以从以下几个站点下载:
PInc.;
Nokia;
Ericsson;
以下以PHONE.COM的UP.SDK开发为例。
一、写WML脚本
你可以用任何文本编辑器写出第一个WAP网页,在此我将这个文件命名为FF.
WML,并在你的WEB服务器的DOCUMENTROOT目录下建立一个子目录EX,将FF.WML存在
该目录下。
<?xmlversion="1.0"?>
<!DOCTYPEwmlPUBLIC"-//PHONE.COM//DTDWML1.1//EN""http://www.phone.
com/dtd/wml11.dtd">
注释:熟悉XML的人知道,以上两句是XML序言,表明文档符合XML1.0版本,并遵
循文档类型。
<wml>
<card>
注释:WAP网页是以<XML>标记开始,象WEB网页以<HTML>标记开始一样。接着,有
许多<card></card>实体段,card是WAP网页中的一个显示页面,一个WAP网页可以
有多个显示页面。
<dotype="accept"label="HowMuch">
<gohref="#result"/>
</do>
<p>键入你期望的工资:<inputname="salary"format="*N"/></p>
</card>
注释:<dotype="accept"label="HowMuch">表示一个提交按钮,类似于html中的
form中的SUBMIT按钮。
<gohref="#result"/>表示一个提交链接,即手机用户按下Howmuch提交按钮后,
id名称为‘result’的显示页面。
<inputname="salary"format="*N"/>表示一个文本输入框,只能输入数字,手机
用户按下Howmuch提交按钮后,文本输入框中的值将存在变量$salary中。
<cardid="result">
<p>祝贺你,</p>
<p>你所期望的工资是:$salary!</p>
</card>
</wml>
注释:<p>你所期望的工资是:$salary!</p>显示字符串和在文本输入框输入的数
字。<p></p>与WEB网页中的有所类似。
</wml>表明整个WAP网页结束。
二、对WEB服务器进行配置
在设计WAP网页时不论你使用的WAP开发工具是UP.SDK或NOKIAWAPTOOKIT或
者ERICSSONWAPIDE,你都必须进行WEB服务器设置,故在此将常见的几种WEB服务
器的设置介绍如下:
1、WINDOWNT平台的IIS:
a、启动菜单->程序->WINDOWSNTOPTIONPACK->IIS4.0;
b、右击InternetInformationServer的子项计算机名,在快捷菜单上选择‘属性’;
c、在属性页面的下部,有一个‘文件类型(F)’按钮,单击此按钮,会出现文件
类型界面;
d、单击‘新增类型’按钮,然后在相关的扩展名栏中填写.wml,在内容类型(
MIME)栏中填写;
e、单击‘确定’按钮;
f、重复c、d、e三步,再增加其他的MIME类型;
2、ApacheWebServeronNT或Solaries或LINUX或者其他版本的UNIX:
a、不管是NT还是UNIX或LINUX,都是修改Apache安装目录下的conf/mime.
types文件;
b、在该文件中增加以下内容:
、存盘;
d、重新启动APACHEWEBSERVER;
三、测试
当你安装好UP.SDK后,从WINDOWS的启动菜单上单击程序->UPSDK4.0->UP.
SIMULATOR在URL地址栏输入此文件的URL地址,即http://localhost/ex/ff.wml
回车后,你就可以看到下图所示的结果,然后按动模拟手机上的数字键输入。
然后,再按Howmuch下的按钮,你就看到可以看到下图所示的结果。
四、结束语
总之,从上面的WAP网页不难看出WAP网页是用WML脚本语言写的,同时,熟悉
XML的人会发现WML语言是基于XML规范的。但是真正进行WAP网页设计,不仅要熟悉
WML语言和XML规范,而且还要熟悉WMLSCRIPT、HDML。WMLSCRIPT是与javascript语
言相似。如果设计动态WAP网页,要了解如何设计WAP服务器端程序。设计WAP服
务器端程序和设计WEB服务器端程序差不多,只不过要遵循WAP协议,所用的设计语
言从理论上说可以是任何编程语言如C/C++、Java、VB、ASP、PERL、PHP、
FOXPRO等等。以后的高级编程指导中会详细讨论二者的区别与相似性。
注:由于目前WAP浏览器及WAPGATEWAYSERVER等对汉字的支持程度有限,故
现在有些程序需要字符集转化。以后随着对汉字的支持程度提高,将不需要转换。
(以上内容均来自WAP协议用于在无线客户端(比如移动电话)上展示因特网内容。Deck/Card元素开始标签作用WML\o"WML<access>标签"<access>定义关于deck的访问控件的信息。1.1\o"WML<card>标签"<card>定义deck中的一个card。1.1\o"WML<head>标签"<head>包含关于文档的信息。1.1\o"WML<meta>标签"<meta>定义有关文档的元信息。1.1\o"WML<template>标签"<template>为deck中的所有card定义代码模板。1.1\o"WML<wml>
标签"<wml>定义WMLdeck(WML根)1.1\o"WML<!-->
标签"<!-->定义注释。1.1文本元素开始标签作用WML\o"WML<br>标签"<br>定义一个换行。1.1\o"WML<p>标签"<p>定义一个段落。1.1\o"WML<table>标签"<table>定义表格。1.1\o"WML<td>标签"<td>定义一个表格单元(表格数据)。1.1\o"WML<tr>标签"<tr>定义一个表格行。1.1文本格式化标签开始标签作用WML\o"WML<b>标签"<b>定义粗体的文本。1.1\o"WML<big>
标签"<big>
定义大号的文本。1.1\o"WML<em>标签"<em>定义着重文本。1.1\o"WML<i>标签"<i>定义斜体的文本。1.1\o"WML<small>标签"<small>定义小号的文本。1.1\o"WML<strong>标签"<strong>定义强调文本。1.1\o"WML<u>标签"<u>定义下划线文本。1.1锚元素开始标签作用WML\o"WML<a>标签"<a>定义一个锚(链接)。1.1\o"WML<anchor>标签"<anchor>
定义一个锚(链接)。1.1图像元素开始标签作用WML\o"WML<img>标签"<img>定义图像。1.1事件元素开始标签作用WML\o"WML<do>标签"<do>在用户点击屏幕上的一个单词或短语时激活一个任务。1.1\o"WML<onevent>标签"<onevent>包含了当某些事件发生时所执行的代码。1.1\o"WML<postfield>标签"<postfield>包含了连同<go>标签被送往服务器的信息。1.1任务元素开始标签作用WML\o"WML<go>标签"<go>表示跳转到新卡片的动作。1.1\o"WML<noop>标签"<noop>表示不进行任何动作(noop指的是"nooperation")。1.1\o"WML<prev>标签"<prev>表示返回前一个访问过的卡片。1.1\o"WML<refresh>标签"<refresh>刷新指定的卡片变量。如果有变量显示在屏幕上,此任务也会刷新屏幕。1.1输入元素开始标签作用WML\o"WML<fieldset>标签"<fieldset>用于对卡片中的相关元素进行分组。1.1\o"WML<input>标签"<input>
定义输入字段(用户可在其中输入文本的文本域)。1.1\o"WML<optgroup>标签"<optgroup>定义可选列表中的一组选项。1.1\o"WML<option>标签"<option>定义可选列表中的选项。1.1\o"WML<select>标签"<select>定义可选列表。1.1变量元素开始标签作用WML\o"WML<setvar>标签"<setvar>在<go>、<prev>或<refresh>任务中把变量设置为指定的值。1.1\o"WML<timer>标签"<timer>定义卡片计时器。1.1字符实体结果描述实体名称实体编号&ersand&&
'apostrophe''>greater-than>><less-than<<
non-breakingspace "quotationmark""softhyphen完整的WMLDTD:<!--WirelessMarkupLanguage(WML)DocumentTypeDefinition.CopyrightWirelessApplicationProtocolForumLtd.,1998,1999.Allrightsreserved.WMLisanXMLlanguage.Typicalusage:<?xmlversion="1.0"?><!DOCTYPEwmlPUBLIC"-//WAPFORUM//DTDWML1.1//EN"<wml>...</wml>TermsandconditionsofuseareavailablefromtheWirelessApplicationProtocolForumLtd.websiteat--><!ENTITY%length"CDATA"><!--[0-9]+forpixelsor[0-9]+"%"forpercentagelength--><!ENTITY%vdata"CDATA"><!--attributevaluepossiblycontainingvariablereferences--><!ENTITY%HREF"%vdata;"><!--URI,URLorURNdesignatingahypertextnode.Maycontainvariablereferences--><!ENTITY%boolean "(true|false)"><!ENTITY%number"NMTOKEN"><!--anumber,withformat[0-9]+--><!ENTITY%coreattrs"idID#IMPLIEDclassCDATA#IMPLIED"><!ENTITY%emph"em|strong|b|i|u|big|small"><!ENTITY%layout"br"><!ENTITY%text"#PCDATA|%emph;"><!--flowcovers"card-level"elements,suchastextandimages--><!ENTITY%flow"%text;|%layout;|img|anchor|a|table"><!--Tasktypes--><!ENTITY%task"go|prev|noop|refresh"><!--Navigationandeventelements--><!ENTITY%navelmts"do|onevent"><!--=============DecksandCards=============--><!ELEMENTwml(head?,template?,card+)><!ATTLISTwmlxml:langNMTOKEN#IMPLIED%coreattrs;><!--cardintrinsicevents--><!ENTITY%cardev"onenterforward%HREF;#IMPLIEDonenterbackward%HREF;#IMPLIEDontimer%HREF;#IMPLIED"><!--cardfieldtypes--><!ENTITY%fields"%flow;|input|select|fieldset"><!ELEMENTcard(onevent*,timer?,(do|p)*)><!ATTLISTcardtitle%vdata;#IMPLIEDnewcontext%boolean;"false"ordered%boolean;"true"xml:langNMTOKEN#IMPLIED%cardev;%coreattrs;><!--=============EventBindings=============--><!ELEMENTdo(%task;)><!ATTLISTdotypeCDATA#REQUIREDlabel%vdata;#IMPLIEDnameNMTOKEN#IMPLIEDoptional%boolean;"false"xml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTonevent(%task;)><!ATTLISToneventtypeCDATA#REQUIRED%coreattrs;><!--========Deck-leveldeclarations========--><!ELEMENThead(access|meta)+><!ATTLISThead%coreattrs;><!ELEMENTtemplate(%navelmts;)*><!ATTLISTtemplate%cardev;%coreattrs;><!ELEMENTaccessEMPTY><!ATTLISTaccessdomainCDATA#IMPLIEDpathCDATA#IMPLIED%coreattrs;><!ELEMENTmetaEMPTY><!ATTLISTmetahttp-equivCDATA#IMPLIEDnameCDATA#IMPLIEDforua%boolean;#IMPLIEDcontentCDATA#REQUIREDschemeCDATA#IMPLIED%coreattrs;><!--================Tasks================--><!ELEMENTgo(postfield|setvar)*><!ATTLISTgohref%HREF;#REQUIREDsendreferer%boolean;"false"method(post|get)"get"accept-charsetCDATA#IMPLIED%coreattrs;><!ELEMENTprev(setvar)*><!ATTLISTprev%coreattrs;><!ELEMENTrefresh(setvar)*><!ATTLISTrefresh%coreattrs;><!ELEMENTnoopEMPTY><!ATTLISTnoop%coreattrs;><!--=============postfield=============--><!ELEMENTpostfieldEMPTY><!ATTLISTpostfieldname%vdata;#REQUIREDvalue%vdata;#REQUIRED%coreattrs;><!--=============variables=============--><!ELEMENTsetvarEMPTY><!ATTLISTsetvarname%vdata;#REQUIREDvalue%vdata;#REQUIRED%coreattrs;><!--=============CardFields=============--><!ELEMENTselect(optgroup|option)+><!ATTLISTselecttitle%vdata;#IMPLIEDnameNMTOKEN#IMPLIEDvalue%vdata;#IMPLIEDinameNMTOKEN#IMPLIEDivalue%vdata;#IMPLIEDmultiple%boolean;"false"tabindex%number;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENToptgroup(optgroup|option)+><!ATTLISToptgrouptitle%vdata;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENToption(#PCDATA|onevent)*><!ATTLISToptionvalue%vdata;#IMPLIEDtitle%vdata;#IMPLIEDonpick%HREF;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTinputEMPTY><!ATTLISTinputnameNMTOKEN#REQUIREDtype(text|password)"text"value%vdata;#IMPLIEDformatCDATA#IMPLIEDemptyok%boolean;"false"size%number;#IMPLIEDmaxlength%number;#IMPLIEDtabindex%number;#IMPLIEDtitle%vdata;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTfieldset(%fields;|do)*><!ATTLISTfieldsettitle%vdata;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTtimerEMPTY><!ATTLISTtimernameNMTOKEN#IMPLIEDvalue%vdata;#REQUIRED%coreattrs;><!--=============Images=============--><!ENTITY%IAlign"(top|middle|bottom)"><!ELEMENTimgEMPTY><!ATTLISTimgalt%vdata;#REQUIREDsrc%HREF;#REQUIREDlocalsrc%vdata;#IMPLIEDvspace%length;"0"hspace%length;"0"align%IAlign;"bottom"height%length;#IMPLIEDwidth%length;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!--=============Anchor=============--><!ELEMENTanchor(#PCDATA|br|img|go|prev|refresh)*><!ATTLISTanchortitle%vdata;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTa(#PCDATA|br|img)*><!ATTLISTahref%HREF;#REQUIREDtitle%vdata;#IMPLIEDxml:langNMTOKEN#IMPLIED%coreattrs;><!--=============Tables=============--><!ELEMENTtable(tr)+><!ATTLISTtabletitle%vdata;#IMPLIEDalignCDATA#IMPLIEDcolumns%number;#REQUIREDxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTtr(td)+><!ATTLISTtr%coreattrs;><!ELEMENTtd(%text;|%layout;|img|anchor|a)*><!ATTLISTtdxml:langNMTOKEN#IMPLIED%coreattrs;><!--==Textlayoutandlinebreaks==--><!ELEMENTem(%flow;)*><!ATTLISTemxml:langNMTOKEN#IMPLIED%coreattrs;><!ELEMENTstrong(%flow;)*><!ATTLISTstr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采棉机驾驶员劳务合同
- 酒店总经理聘用合同及管理体制
- 二零二五个人股权转让协议合同书
- 企业集资协议二零二五年
- 电子商务公司股权置换合作协议书
- 二零二五抚养权变更协议
- 租赁场地租赁合同范例
- 创意美术梨子写生课件
- 2025屋顶场地租赁合同
- 2025股权转让合同书范文
- 《电力系统继电保护故障信息采集及处理系统设计与实现【论文11000字】》
- 架空输电线路施工质量检验及评定规程
- GA 533-2005挡烟垂壁
- 艾草(艾蒿)的介绍课件
- 《农业区位因素及其变化》(第二课时)
- 史上最牛的民族-犹太人课件
- 《全科医学概论》第4章课件
- 五年级上册心理健康教育课件-体验成功的快乐(共10张PPT)全国通用
- 膝关节置换术查房课件
- 法理学-(第五版)完整版ppt全套教学教程课件(最新)
- 旅行管家实务全套ppt课件最全电子教案完整版教学教程整套全书课件ppt
评论
0/150
提交评论