WAP技术入门Word格式文档下载.docx
《WAP技术入门Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《WAP技术入门Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
![WAP技术入门Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/12/e3600eb1-494e-4038-a548-d7718d43cb07/e3600eb1-494e-4038-a548-d7718d43cb071.gif)
性、设备平台无关性、以及相互操作性。
WAP沿用了目前的WEB架构,从而使得目前投放到WEB的
资金、设备、人力等等,都能够继续保留并且沿用。
WAP不同指出在于她多出了一个被称之为WAP
GateWay的东西,Gateway有何作用呢?
以Internet设备来讲,Gateway
就类似于Proxy,当客户端要取得某个网站的叶面的时候,都是由Proxy代理来取得,再交给
Client端。
而WAP Gateway除了代理手机取得所需要的网站的WML文件之外,还要
充当转换HTTP协议和WAP协议的角色,从而使得手机顺利取得资料。
WAP Gateway大
都由电信局或者ISP所设立,而一般的网站,只要在WEB Server中加入相关的MIME格
式设定就好了,就可以直接让用户的手机访问到了。
架构描述如下图:
无线设备(手机、PDA)<
---->
(WAP协定)<
WAP网关<
--->
(HTTP协定)<
WEB服务
器<
数据库服务器
可以看到,WAP Gateway在无线网络数据传送的过程中充当的是一个中间人的角色,有
了她,现在已经投到互联网上面的资金、设备、人力等等才不会被WAP网站所废弃,相反的是可以更
好的利用现有的几乎所有的资源。
另外,像诺基亚等公司,将WAP网关和WEB服务器整合在了一起,被称之为“Web App
lication Server”,但是其总体架构和上图仍然是相同的,这里就不再重复了。
接下来,我们来看看,为了让用户能够在手机上面访问到我们的网站,应当如何设置目前已经存在
的Web Server。
一、Internet Information Server(IIS)
设定方式:
打开〔开始〕――〉〔程序〕――〉〔WindowsNT4.0
Option
Pack〕――〉
〔Microsoft
Internet
Information
Server〕――〉〔Internet服务管理员〕
在打开的窗口里面选中Server,右键选择“属性”,增加如下的MIME格式:
文件类型 MIME
.WML
text/vnd.wap.wml
.WMLC
application/vnd.wap.wmlc
.WMLS
text/vnd.wap.wmlscript
.WMLSC
application/vnd.wap.wmlscriptc
.WBMP
image/vnd.wap.wbmp
二、Personal Web Server4
1.打开注册表编辑器,在HKEY_CLASSES_ROOT下面新建一个主键“.WML”;
2.在HKEY_CLASSES_ROOT\.WML下面新建一个字符串,命名为“Content
Type”,值为
“text/vnd.wap.wml”;
3.在HKEY_LOCAL_MACHINE\Software\CLASSES\MIME\Database\Content
Type新建一个
主键“text/vnd.wap.wml”
4.在“text/vnd.wap.wml”主键下面新建一个字符串,名称“Extension”,值为“.WML”;
5.依次重复以上2,3,4步骤,建立其他的MIME类型
三、Linux(Apache)
使用管理员身份登入系统,在命令行,输入“ps
-ef”命令兰看看当前的WWW服务是否正常,
然后使用VI来编辑“/etc/httpd/conf/srm.conf”文件,在AddType处增加如下类型:
AddType
text/vnd.wap.wml .wml
application/vnd.wap.wmlc
.wmlc
text/vnd.wap.wmls
.wmlscript
application/vnd.wap.wmlsc
.wmlscriptc
image/vnd.wap.wbmp
.wbmp
保存后,将httpd重新启动即可。
这样设置过后,我们的Web Server就可以让手机访问得到了,当然,对于普通的H
TML文件,手机是无法识别的,手机所要读取得文件类型从上面设置过程我们也可以猜测的
出来,对了就是WML文件。
在开始设计WML之前,我们先要来熟悉一下我们的WAP网站
开发环境。
第二章
手机仿真开发环境
所谓的手机仿真开发环境,也就是在普通的PC机器上面使用各种模拟器来模拟手机的真实环
境,从而方便WAP网站的开发,目前较为流行的模拟器主要有以下几个:
一、Nokia Toolkit 1.2/1.3
可以从这个地址下载这个仿真开发环境:
目前这个WAP工具包的最高版本是1.3beta,诺基亚公司的这个
开发包是采用JAVA编写的,所以你在安装之前首先要安装JRE
2.2以上的版本才可以,JRE可以在SUN公司的主页上面下载
()。
诺基亚公司的这个开发工具是一个集成环境,可
以方便的编译WML/WMLScript,并且有着详细的WML/W
MLScript开发文档,用户可以通过地址栏来装载本地正在开发的
WML文件,或者直接浏览互联网上面的WAP网站;
但是Nokie
Toolkit的运行条件比较苛刻,如果你的机器内存小于128兆,
那么运行的速度将大打折扣,没有办法,JAVA编写的程序向来如此
的,这也算是一个小小的遗憾吧。
1。
2的版本没有模拟实际型号的手
机,而1.3版本就有模拟产品7110的仿真环境。
二、
Ericsson WapIDE4
爱立信公司推出的一个WAP开发包,和诺基亚公司的开发包类似,爱立
信公司的这个工具也是一个集成开发环境,比较方便,可以从这个地址下
载:
相对于诺基亚公司的WAP开发工具而言,爱立信公司的这个开发工具就
较为简陋一些,并且它的开发文档很少,但是它的运行速度要比诺基亚的
那个开发工具包要快的多,尤其是内存在64兆左右的机器。
三、
UP.SDK 4.0
Phone.com公司的UP.SDK产品和上面的两种开发工具相比
就是没有集成的IDE开发环境。
这个开发工具可以在:
取得。
从上面的说明来看,在这三个流行的WAP开发工具中,最具有吸引力的当然就是诺基亚公司的模
拟仿真环境了,图形界面以及丰富的开发文档,的确不可多得。
另外,还有其他的一些可以浏览WAP
网站的软件,比如WinWAP,WAPMan等等,他们都是可以直接在PC机上面直接来浏览WA
P网站的软件,值得一提的是,Opera公司推出的4.0版本的浏览器就已经支持直接在浏览器中
访问WAP网站了,这个小巧的浏览器功能很是强劲。
相信微软也不会坐视不等,可能在IE的后续版
本中增加支持WML文件的功能。
上面的WAP仿真开发环境的安装后的设置都比较简单,稍微懂一些英文的都会看得懂的。
第三章
WML/WMLScript设计
现在我们来正式设计我们的WAP站点,正如目前的WEB网站是基于HTML语言一样,WAP
网站是基于WML语言的,而WML语言其实是遵循目前的XML技术的,不过你如果不懂XML也不
要紧的,还是可以很快入门的。
WML和以往的HTML语言最大的不同是,WML语言的限制非常严格,表现在下面几个方面:
WML中的所有标签、属性都是区分大小写的
对于连续的空格,WML编译器将认为是一个
所有标签的属性都需要使用双引号括起来
所有的标签都必须封闭,对于不成对出现的标签,必须在“>
”之前加上“/”,比如“<
br/>
”
一定要注意上面的要点,否则很有可能出现手机无法浏览WML的情况出现。
做到这一点,只是习
惯的问题,主要是我们在HTML时代养成的“懒散”习惯不太好,都是IE的兼容性太好惹得祸,^_^
在WML中,最基本的单位叫做“card”,他被用来向用户提供交互界面,这其实也是为了照顾到
手机的屏幕比较小而设计的,并且手机的处理能力有限,不可能像我们经常使用的IE等浏览器那样一
次将整个页面载入,在使用滚动条来察看内容,被设计用于手机浏览的WML文件,一个最大不能超过
1.4K,所以我们才将大的叶面分割成为若干个card,来一次显示;
多个“card”就组成了一个
“Deck”,也即使一个“层面”,一个WML文件中只允许出现一个层面,正如HTML中只用一个
“<
html>
<
/html>
”标签一样。
另外还要记住,只要想显示一些文字到手机上面,就必须使用"
p>
/p>
"
标签将这一段文字括住。
不再罗嗦,下面我们就先看看一个简单的例子:
HelloWorld
?
xml
version="
1.0"
>
!
DOCTYPE
wml
PUBLIC
-//WAPFORUM//DTD
WML
1.1//EN"
http:
//www.wapforum.org/DTD/wml1_1.1.xml"
wml>
card
id="
hello"
title="
WAP"
Hello!
World!
<
--
注释信息
-
->
/card>
/wml>
将这个文件存盘,在诺基亚仿真浏览器中浏览就可以看到你向WAP世界的问候语了。
我们可以看
到,在WAP中的注释方法同HTML中是一样的。
要注意的是每一个card的id属性是不允许省略的,
并且在默认的情况下手机显示的是这个“层面”的第一个“卡片”,当然我们也可以直接指定要浏览的
特定“卡片”,后面我们会提到。
怎么样,看看这第一个例子,觉得WML并不是很难吧,要比HTML还要简单呢,只是它的限制
稍微多一些而已,接下来我们来看看WML中其他有用的标签:
标签:
描述:
定义“层面”的开始和结束,一个WML文件只允
许一个层面
card>
定义“卡片”的开始和结束,多个“卡片”组成一
个“层面”
id属性必须要给出,用以区分不同的“卡片”
title属性指明提示信息
用来显示文字的标签
img
src="
alt="
localsrc="
align="
left"
height="
width="
vspace="
hspace="
alt属性用来指定图片没有正常显示时的提示信息
src属性指定图片的路径
以上两个属性是必须的
其他的属性类似于HTML语言
do
type="
label="
name="
option="
/do>
执行某些动作,其中属性type是必须的。
type值
触发事件
accept
触发确认
delete 触发删除
help 触发帮助
options 触发选择
prev 返回上一页
reset 清除目前状态
go href="
/>
当用户点击了do标签之后,就可以使用这个标签
连接到其他的“卡片”或“层面”
要指定它的“href”属性。
timer
value="
设定计时器的时间,以0.1秒为单位,同一个“卡
片”只能有一个timer标签。
到达特定时间后会触
发ontimer事件
a
href="
/a>
类似HTML中的同样标签
go
method="
/go>
类似于HTML中的form标签,method属性的
值:
post/get
postfield
设定变量的名字和值,这些值可以被服务器端的
ASP,JSP等程序捕获。
input
text/password"
提供输入的表单,类似于HTML
$(name)
获取变量的值
以上就是在WML中经常用到的标签,当然还有很多标签,你可以在Nokia
Toolkit中找到详尽的语
法,这里就不再重复了。
要注意的是,在WML中使用的图片格式不同于平常的图片,而是要使用WB
MP格式的图片,这种图片是黑白两色的专为手机提供的图片格式,你可以下载Photoshop的WBMP插
件,用来编辑WBMP格式的图片,或者网络上面有很多的工具可以转换其他格式的图片到WBMP格
式。
接下来我们要介绍一下运行在手机上面的script程序:
WMLScript
WMLScript语言和JavaScript语言非常相似,不同之处在于WMLScrip
t语言必须放在一个WMLS的文件里面,并不像javascript那样可以镶嵌在HTML中,
并且WMLS文件的大小也不要超过1.4K
语法规则如下:
每一行程序均以分号结尾
注释方法:
“//”或者“/*
*/”
使用关键字“var”来声明变量
怎么样?
从上面我们就可看出来,WMLScript语言和javascript语言是多么的
相似,WMLScript的变量类型有:
Boolean、Interger、Floatin
g-point、String、Invalid
WMLScript的流程控制语言和javascript的相同,实例如下:
//
if-else
if
(x
==
y){
x
=
x
*
3.25;
}else{
0;
}
for
loop
(var
counter
1;
500;
++){
var
i
1.05;
somefunction(i);
};
while
(i
j){
i--;
break
if
(counter
250)
break;
//continue
-100;
100;
0)
continue;
350/counter;
函数:
WMLScript的函数使用方法如下:
extern
function
identifier(FormatParameterList)
Block
;
extern是说明函数是放在另外一个文件当中的。
如下:
RunTime(distance,
speed){
time
distance
/
speed;
return
time;
此例出入distance以及speed两个参数,然后返回time的值。
如果调用的是WMLScript的內建函数,就必须加上这个函数所属的类名,例如调用
String类的length()函数,使用:
var
String.length('
just
test'
);
內建函数
WMLScript有六大內建函数:
Lang:
包含数据形态、绝对值、随机数等。
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.xml"
stuid"
stuid:
accept"
Results"
<
WMLScriptExample.wmls#checkid($(stuid))"
Enter
Stu_ID:
text"
Results:
You
entered:
Stu_ID:
$(stuid)<
让用户输入学号,go的href连接到另外一个.wmls文件,调用checkid函数。
再建
立一个WMLScriptExample.wmls文件,內容如下:
checkid(stuid){
(String.length(stuid)
8){
WMLBrowser.setVar("
Error:
String
must
be
8
digits
long."
}
WMLBrowser.go("
WMLScriptExample.wml#Results"
这个WMLScript就是检查stuid字串长度是否为8,并且返回结果。
WMLBrowser.setVar()设定变量的值,WMLBrowser.go()將手机定位到下一个
WML文件,也就是WMLScriptExample.wml的Results卡片。
WMLScript是不是很类似于javascript?
简直就是一模
一样,就是多了和WML文件相配合的功能而已。
最后需要指出的是,现在的大多数WAP手机(Nokia7110、爱立信R32
0S等等)都是使用UTF-8编码的,也就是采用Uniecode来编码,这样,如
果我们直接在WML/WMLScript中使用中文的话,将会产生乱码,手机用户无
法识别,所以我们在输出中文之前,要对中文进行Uniecode的编码,这个工作就
要服务器端的程序来完成了,比如我们使用ASP来做这项工作,可以调用这个函数实现
转换,其他语言的实现方法类似:
Function
c2u(myText)
For
1
to
Len(myText)
'
对每一个字节进行处理
c
Mid(myText,
i,
1)
c2u
c2u
&
#x"
Hex(AscW(c))
'
将传回的Unicode转换为十六进制值