WML—移动世界的使者

Author: 秋实 Date: 2001年 29期

?牐犚贫旃馐侨嗣堑囊桓雒蜗耄琁nternet世界无所不有,要是能让移动电话如手机遨游于这信息的海洋那该是一件多么激动人心的事呀新事物的出现,引得人们欲一探其中的奥秘:移动电话是怎么上网的呢?通过移动电话上网的信息与一般的网页有什么区别呢?这些页面又是怎么制作的呢?这些都是令软件开发者以及网页设计者们心动的话题。
  #1?牐燱AP——连接Internet与移动通信网的桥梁
  ?牐燱AP是Wireless Application Protocol(无线应用协议)的缩写。大家知道,Internet与移动通信并不是在一个网内,而是相互隔离,像手机这类无线终端要连入Internet就有些麻烦了,WAP手机是集移动电话与移动电脑于一身的新型通讯工具,它不仅具有普通手机的功能,而且还有收发电子邮件、传真、浏览新闻、查看股市行情等功能。
  ?牐燱AP手机和一般的手机不同之处在于它内置有微型浏览器(MiniBrowser)、缓存(Cache)和内存(RAM),并支持客户端Cookies和Session。正如电脑上网要用 IE 浏览器 或 NETSCAPE 浏览器,WAP手机上网要用微型浏览器。WAP手机上网也要进行一系列的设置。具体的设置详见WAP手机技术支持。
  ?牐犓孀诺谌贫ㄐ疟曜嫉闹鸩酵骋唬砂⑿拧⑴祷恰⒛ν新蘩胛尴咝行牵烾nwired Planet?犜?1997年发起并制定了WAP Forum(WAP论坛),由WAP负责将移动通信网与Internet网连接在一起。随着众多全球电信公司的加入,WAP在目前也成为移动终端上网的事实标准。
  ?牐燱AP实际上是一种协议,它规定了一种应用开发和运行环境。在这个环境中,移动终端如手机用WML(Wireless Markup Language:无线标记语言)来显示通过WAP网关转换自Internet上的文字图像数据,这个应用框架可简单地描示如图(^29040504a^)1所示:
  ?牐燱AP包含一系列呈分层结构的协议,对于一般的朋友们来说,我们不需要去了解一些复杂难记的名词术语了,图1中实际指出了典型WAP应用系统包含的三大组成部分:
  ?牐犚贫斩耍憾訵AP手机已是耳熟能详了,而掌上电脑、PDA等都可能是WAP应用的终端。就WAP手机来说,在它的存储芯片里,装有微浏览器软件,并利用设备上简单的选择键对浏览器进行操作。
  ?牐燱AP网关:由于WAP的协议为层次结构,各个协议间需要信息转换,并且需要将WAP数据进行压缩编码,对数据进行校正,这些功能都是由WAP网关来实现,形象地说,网关就像一个翻译,处在移动终端与Internet的WEB服务器之间进行信息转换。
  ?牐犜捶衿鳎∣riginal Server):这是提供最终应用服务的服务器,如支持WAP的Web网站,我们平常所说的手机上网,其信息来源就在这些特定的服务器上。
  #1?牐燱ML——WAP世界的通用语言
  ?牐燱ML与HTML一样,是一种标记语言,只是它专用于窄带的无线环境而已。它基于XML(Extend Markup Language:扩展标记语言),用来表示文本、超级链接、图像、表格、声音等各种数据并通过微浏览器显示出来。
  ?牐犑煜ね持谱鞯呐笥衙腔怪溃ゴ坑肏TML表示的内容是静态的,与用户的交互功能比较弱,如果遇着要做一些动态的程序效果、用户输入检查、对话框弹出等就需要用JavaScript或VBScript等有程序设计性质的脚本语言。与此类似,WML Script作为WML的一个重要组成部分,为WML网页提供程序功能。
  ?牐犎绻阌蠬TML与脚本语言知识,在了解XML时触类旁通,就可以很快掌握WML,而我的叙述将很多地让你将HTML知识转移到WML上来。
  #1?牐牬親TML出发迈向WML
  ?牐燞TML显示一个网页涉及到的翻译HTML的浏览器软件、HTML内容,而显示一个WML页面,也需要相关的浏览器软件及相关的WML内容。让我们在HTML与WML之间架设一个桥梁,让你迅速地走进WML世界。
  #2?牐?1.IE浏览器与User Agent
  ?牐燱ML文档和WMLScript程序只是规定了WML页面要显示效果与功能,将这些文档与程序“翻译”成我们可以理解的样式就是User Agent——用户终端的事情了,用户终端的功能与IE浏览器的功能是一样的,不过,由于WML涉及到的设备是多样的,真正体现的样式可能是软件(如微浏览器),也可能是特定的设备,实现对WML及其脚本语言“翻译”功能。
  #2?牐?2.WML文档结构
  ?牐犎缤迹╚29040504b^)2所示,怎么样,似曾相识吧?我们简单地了解一下该文档结构。
  ?牐犑紫龋庵纸峁箍瓷先ズ虷TML文件很类似,我们称之为deck(牌局),其文件大小最好不要超过1.2K。由于 WML是XML的一个应用分支,作为XML文档,其头部必须先进行以下声明:
  ?牐?<﹖xml version=“1.0”﹖>
  ?牐?<!DOCTYPE wml PUBLIC“-//WAPFORUM//DTD WML 1.1//EN”
  ?牐牎癶ttp://www.wapforum.org/DTD/wml_1.1.xml”>
  ?牐犉浯危悸堑搅耸只男∑聊幌允疚侍猓際TML文件不同的是,每个deck划分成一个个容易定义的用户交互操作的基本单元card,一屏内容对应一个card。每一个deck可以包含多个card,用户可通过在一个或多个WML 文件产生的各个卡之间来回导航来实现对Internet的接入。
  ?牐犃硗庾魑猈ML的一个标记,与HTML标记一样具有标记属性或标记内容。标记属性表示相关于该标记的一些特性设置如用来唯一表示标记的标识号id、表示提示信息的title、表示图片源地址的src等。由于WML是XML的一个应用分支,语法比HTML严格,它要求每个标记必须有对应的结束标记或结束符。如仅表示回车换行的空标记br在HTML中可以写成<br>或<br/>,但在WML必须采用加有结束符“/”的<br/>
  #2?牐?3.了解WML标记
  ?牐犎绻懔私釮TML的话,那么许多WML标记与我们已经是老相识了。我简单地介绍一些常用标记。我们可粗略地分为以下几种标记:
  ?牐?1)结构标记
  ?牐爓ml:文档的根标记;
  ?牐燾ard:基本显示单元,对应一屏内容。
  ?牐?2)内容显示标记
  ?牐燩:表示段落 ;
  ?牐營nput:表示用户输入,可以通过type属性设置是输入文本还是密码等;
  ?牐燬elect:表示选项列表,可以包含多个option选项标记;
  ?牐爐able:表格标记,包含表行标记tr与单元格标记td,典型结构如下:
  ?牐?<table alighn=“L” columns=“2”>
  ?牐?<tr><td>张三</td><td>李四</td></tr>
  ?牐?<tr><td>冰清</td><td>玉洁</td></tr>
  ?牐?</table>
  ?牐燽r:表回车换行;
  ?牐爀m、strong、I、b、u、big、small:对字体进行强调显示,其中,em表示强调显示,而strong表示特别强调;I表示斜体显示,b为黑体显示(big为大字体显示)small为小字体显示。
  ?牐營mg:图像元素。
  ?牐?3?牭己奖昙?
  ?牐燼:链接标记,用法如:<a href=“....”>下一页</a>
  ?牐燼nchor:也是一种链接标记,我们可将上面a的用法用anchor表示为:
  ?牐牐糰nchor>下一页
  ?牐牐糶o href=“......”>
  ?牐牐?/anchor>
  ?牐爂o:指向一个统一资源标识符URI,如一个特定的card或deck,当指向这个URI时,用户终端下载这个URI所表示的资源并显示。
  #2?牐?4.事件与导航
  ?牐犑导试贖TML中我们已经见识过事件,比如一个链接标记<a>,可有点击事件,鼠标移动事件,当事件发生时,就执行相关的程序。事件是一系列的操作动作,事件发生了,就要对它进行处理,这也就产生了相应的处理任务,这个过程称之为导航 ,由此可以得出,事件与任务处理是关联在一起的。card是显示的基本单位,从一个card导航到另一个card就是通过触发事件并执行事件所对应的任务。WML的事件处理是通过相关的标记来实现的,我们可将事件分为基本的两大类:
  ?牐?1)用户触发事件  键盘(包括软硬按钮)输入事件,这类事件用<do>标记来处理,如用户按下:“ACCEPT”或“DELETE”或HELP键。
  ?牐?2)内部事件  在页面内如点击链接,从一个card跳到另一个card等,这类事件用<onevent>标记来处理。
  ?牐犖颐蔷僖桓隼?
  ?牐牐糳o type=“accept” label=“InputName” name=“do1”>
  ?牐牐糶o href=“#card01”/>
  ?牐牐?/do>
  ?牐犐厦姹硎镜庇没О聪翧CCEPT键时,跳转到card01执行相关的处理任务。
  ?牐牐約elect title=“Cities List” name=“city”>
  ?牐牐紀ption title=“Beijing” value=“Beijing”>
  ?牐牐紀nevent type=“onpick”>
  ?牐牐糶o href=“#card01”/>
  ?牐牐?/onevent>Beijing</option>
  ?牐牐紀ption title=“Shanghai” value=“Shanghai” onpick=“#card01”>Shanghai</option>
  ?牐牐紀ption title=“Hongkong” value=“Hongkong” onpick=“#card01”>Hongkong</option>
  ?牐牐?/select>
  ?牐犐厦姹硎镜庇没а≡窳搜∠睢癇eijing”时,跳转到card01执行相关的任务,属性type所指的onpick是内部事件中的一种,表示用户对<option>项的选择操作。
  ?牐犚陨系慕步馐且桓龃窒咛跏降模绻蚕晗傅幕埃强梢孕闯梢槐臼榱耍∈导噬希琖ML与HTML有很多的类似之处,我们学习时,要注意两者之间的异同。
  #1?牐燱MLScript——让WML更活、更强
  ?牐牬看獾腤ML文档只是一系列的文本、图像与表格等数据,但这些内容是静态的,如我们需要检验用户输入是否有效、对设备相关功能的调用,对用户操作进行提示或警告等,这都是WML所不能胜任的,这就需要它的脚本语言来承担这些相对“高级”的功能了。
  ?牐犎绻闶煜?JavaScript或C语言,那么WMLScript也就是老朋友了。
  #2?牐?1.变量与数据类型
  ?牐犜赪MLScript中,包含整型、浮点型、字符串型、布尔型几种变量,与JavaScript一样,在定义变量时,没有必要为变量指定类型,一个变量在不同的时候可以是不同的类型。
  ?牐牨淞康纳鳎簐ar varName,如: var functionName = “loadPage”;??
  ?牐牨淞康挠行Х段Вㄉ嬷芷冢?:在声明的函数内有效。
  #2?牐?2.操作符
  ?牐犜赪MLScript中,操作符与一般的语言类同,有赋值、算术、逻辑、字符串操作、比较操作、条件、获得变量类型的typeof、字符串的数组操作,表达式序列或参数之间的逗号等。
  #2?牐?3.语句类型
  ?牐牫绦蛴镅缘挠锞淅嘈筒煌夂跫复罄啵核承颉⑴卸稀⒐潭ù问酚胩跫贰S雑avascript在语法与表达方面没有太大差异!
  #2?牐?4.函数
  ?牐犜赪MLScript中函数分为两种类型,一种是用户自己定义的函数,一种是WMLScript提供的标准函数库的函数。
  ?牐?1)用户自定义函数
  ?牐犐鳎海踖xten]function 函数名([参数列表)]语句块Block[;],extern表示函数能否被其它脚本文件的函数所调用,如:
  ?牐爀xtern function toad(a,b){?牓?
  ?牐爎eturn a+b??
  ?牐牓牐沪?
  ?牐犎绻饔枚ㄒ宓暮至街智榭觯恢质俏募诘饔茫恢质俏募獾饔谩N募诘饔弥苯有春⒋氩问纯桑绻饔猛獠亢蚋袷轿?
  ?牐牨嘁氲ピ?#函数名(参数列表)[注:这里所指的编译单元实际上是指一个script文件]??
  ?牐犎纾?
  ?牐爑se url scriptLib “http://www.yesky.com/script”; ??
  ?牐爁unction drawTable(param){?牓?
  ?牐爒ar lines=scriptLib#countNum(prram);?牔?
  ?牐爎etrun 3*lines??
  ?牐牓牐?
  ?牐犠⒁庠诘饔猛獠亢埃欢ㄒ胾se url为外部编译单元定义一个名字。
  ?牐?2)标准库函数
  ?牐燱MLScript支持的标准函数库有:Lang、Float、String、URL、WMLBrowser和Dialogs,每个库包含一系列的函数。如果了解面向对象编程的话,实际Lang、Float等就是一个个标准对象,对象里定义有许多方法,调用标准库函数就是调用对象的方法。
  ?牐牨曜伎夂牡饔酶袷轿嚎饷?.函数名,如String.elementAt(str,1,””)??
  ?牐牭比涣耍琖MLScript的功能是有限的,如果对站点的数据进行检索、动态并批量地生成WML页面,单靠WML与WMLScript就难以实现了,这需要服务器端脚本语言如PHP、ASP、JSP等或服务器端应用程序实现了。
  #1?牐燱ML模拟器——在PC机上模拟WAP世界
  ?牐牻擦苏饷炊啵笥衙强赡芊膏止玖耍琖AP设备价格不菲,怎么设计WML页面或编写脚本程序呢?这就不用担心了,你可以到网上去下载相关的软件模拟器及相关的开发工具。不同的厂商如Ericsson、Nokia等都有针对自己手机的WAP开发工具,工具一般都含有WML编辑器、模拟微浏览器及图形编辑器。你可以到天极或ZDNet等网站去下载相关的模拟品与开发工具。
  ?牐犜诖耍彝萍鲆桓錾杓芖ML网页的工具:Nokia WAP Toolkit(图(^29040504c^)3)。这个软件左边是编辑栏,可以书写WML,右边则是Nokia手机的模拟图及显示的左边WML内容的式样。Nokia的WAP工具包含有图形开发环境,浏览器和WML/WMLScript编译器。Nokia工具包目前只能在Windows NT4.0或Windows 2000上运行,但是要注意的是Nokia WAP Toolkit需要首先运行Java 2 runtime才能使用,所以你需要先到Sun’s Java 网站去下载一个Java 2 SDK或者Java 2 Runtime Environment(JRE)才可以安装使用Nokia WAP 工具包。
  ?牐犖视?WAP潮流,许多站点都开通了WAP功能,从旅游、休闲到金融、教育等各大类应有尽有,例如新浪:http://wap.sina.com.cn、搜狐:http://wap.sohu.com、掌站网:http://wap.byair.com等,令这WAP世界异彩纷呈。
  ?牐犇愕氖只蠾AP功能吗?有,那就去WAP世界冲浪;没有,那就去下载一个模拟器过瘾!