1、性、设备平台无关性、以及相互操作性。沿用了目前的架构,从而使得目前投放到WEB的资金、设备、人力等等,都能够继续保留并且沿用。不同指出在于她多出了一个被称之为的东西,有何作用呢?以设备来讲,就类似于,当客户端要取得某个网站的叶面的时候,都是由代理来取得,再交给端。而除了代理手机取得所需要的网站的文件之外,还要充当转换协议和协议的角色,从而使得手机顺利取得资料。大都由电信局或者所设立,而一般的网站,只要在中加入相关的格式设定就好了,就可以直接让用户的手机访问到了。架构描述如下图:无线设备(手机、)(WAP协定)网关(HTTP协定)服务器”之前加上“/”,比如“”一定要注意上面的要点,否则很有可能
2、出现手机无法浏览的情况出现。做到这一点,只是习惯的问题,主要是我们在时代养成的“懒散”习惯不太好,都是的兼容性太好惹得祸,_在中,最基本的单位叫做“card”,他被用来向用户提供交互界面,这其实也是为了照顾到手机的屏幕比较小而设计的,并且手机的处理能力有限,不可能像我们经常使用的等浏览器那样一次将整个页面载入,在使用滚动条来察看内容,被设计用于手机浏览的文件,一个最大不能超过.,所以我们才将大的叶面分割成为若干个card,来一次显示;多个“card”就组成了一个“Deck”,也即使一个“层面”,一个文件中只允许出现一个层面,正如中只用一个“”标签一样。另外还要记住,只要想显示一些文字到手机上面
3、,就必须使用p/p标签将这一段文字括住。不再罗嗦,下面我们就先看看一个简单的例子:?xmlversion=1.0!DOCTYPEwmlPUBLIC-/WAPFORUM/DTDWML1.1/ENhttp:/www.wapforum.org/DTD/wml1_1.1.xmlwmlcardid=hellotitle=WAPHello!World!/card/wml将这个文件存盘,在诺基亚仿真浏览器中浏览就可以看到你向世界的问候语了。我们可以看到,在中的注释方法同中是一样的。要注意的是每一个card的id属性是不允许省略的,并且在默认的情况下手机显示的是这个“层面”的第一个“卡片”,当然我们也可以直接
4、指定要浏览的特定“卡片”,后面我们会提到。怎么样,看看这第一个例子,觉得并不是很难吧,要比还要简单呢,只是它的限制稍微多一些而已,接下来我们来看看中其他有用的标签:标签:描述:定义“层面”的开始和结束,一个文件只允许一个层面card定义“卡片”的开始和结束,多个“卡片”组成一个“层面”id属性必须要给出,用以区分不同的“卡片”title属性指明提示信息用来显示文字的标签imgsrc=alt=localsrc=align=leftheight=width=vspace=hspace=alt属性用来指定图片没有正常显示时的提示信息src属性指定图片的路径以上两个属性是必须的其他的属性类似于语言do
5、type=label=name=option=/do执行某些动作,其中属性type是必须的。type值触发事件accept触发确认delete触发删除help触发帮助options触发选择prev返回上一页reset清除目前状态gohref=/当用户点击了do标签之后,就可以使用这个标签连接到其他的“卡片”或“层面”要指定它的“href”属性。timervalue=设定计时器的时间,以0.1秒为单位,同一个“卡片”只能有一个timer标签。到达特定时间后会触发ontimer事件ahref=/a类似中的同样标签gomethod=/go类似于中的form标签,method属性的值:post/get
6、postfield设定变量的名字和值,这些值可以被服务器端的ASP,JSP等程序捕获。inputtext/password提供输入的表单,类似于$(name)获取变量的值以上就是在中经常用到的标签,当然还有很多标签,你可以在NokiaToolkit中找到详尽的语法,这里就不再重复了。要注意的是,在中使用的图片格式不同于平常的图片,而是要使用格式的图片,这种图片是黑白两色的专为手机提供的图片格式,你可以下载Photoshop的插件,用来编辑格式的图片,或者网络上面有很多的工具可以转换其他格式的图片到格式。接下来我们要介绍一下运行在手机上面的script程序:语言和语言非常相似,不同之处在于语言必
7、须放在一个的文件里面,并不像那样可以镶嵌在中,并且文件的大小也不要超过.语法规则如下:每一行程序均以分号结尾注释方法:“/”或者“/*/”使用关键字“var”来声明变量怎么样?从上面我们就可看出来,语言和语言是多么的相似,的变量类型有:、的流程控制语言和的相同,实例如下:/if-elseif(x=y)x=x*3.25;else0;forloop(varcounter1;500;+)vari1.05;somefunction(i);while(ij)i-;breakif(counter250)break;/continue-100;100;0)continue;350/counter;函数:的函
8、数使用方法如下:externfunctionidentifier(FormatParameterList)Block;extern是说明函数是放在另外一个文件当中的。如下:RunTime(distance,speed)timedistance/speed;returntime;此例出入distance以及speed两个参数,然后返回time的值。如果调用的是WMLScript的內建函数,就必须加上这个函数所属的类名,例如调用String类的length()函数,使用:varString.length(justtest);內建函数WMLScript有六大內建函数:Lang:包含数据形态、绝对值、
9、随机数等。Float:浮点数处理。String:字符串长度(length)、字符位置(charAt)等字串处理。URL:getReferer、getHost。WMLBrowser:go、prev、next、refresh等浏览处理。Dialogs:弹出(prompt、confirm、alert)等对话框。首先我们先建立一个WML文件,WMLScriptExample.wml,內容如下:/www.wapforum.org/DTD/wml_1.1.xmlstuidstuid:acceptResultsWMLScriptExample.wmls#checkid($(stuid)EnterStu_ID
10、:textResults:Youentered:Stu_ID:$(stuid)让用户输入学号,go的href连接到另外一个.wmls文件,调用checkid函数。再建立一个WMLScriptExample.wmls文件,內容如下:checkid(stuid)(String.length(stuid)8)WMLBrowser.setVar(,Error:Stringmustbe8digitslong.WMLBrowser.go(WMLScriptExample.wml#Results这个WMLScript就是检查stuid字串长度是否为8,并且返回结果。WMLBrowser.setVar()设定
11、变量的值,WMLBrowser.go()將手机定位到下一个WML文件,也就是WMLScriptExample.wml的Results卡片。是不是很类似于?简直就是一模一样,就是多了和文件相配合的功能而已。最后需要指出的是,现在的大多数手机(、爱立信等等)都是使用编码的,也就是采用来编码,这样,如果我们直接在中使用中文的话,将会产生乱码,手机用户无法识别,所以我们在输出中文之前,要对中文进行的编码,这个工作就要服务器端的程序来完成了,比如我们使用来做这项工作,可以调用这个函数实现转换,其他语言的实现方法类似:Functionc2u(myText)For1toLen(myText)对每一个字节进行处理cMid(myText,i,1)c2uc2uHex(AscW(c)将传回的Unicode转换为十六进制值
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2