📄 wap技术入门(下).txt
字号:
件,用来编辑WBMP格式的图片,或者网络上面有很多的工具可以转换其他格式的图片到WBMP格
式。
接下来我们要介绍一下运行在手机上面的script程序:WMLScript
WMLScript语言和JavaScript语言非常相似,不同之处在于WMLScrip
t语言必须放在一个WMLS的文件里面,并不像javascript那样可以镶嵌在HTML中,
并且WMLS文件的大小也不要超过1.4K
语法规则如下:
1、 每一行程序均以分号结尾
2、 注释方法:“//”或者“/* */”
3、 使用关键字“var”来声明变量
怎么样?从上面我们就可看出来,WMLScript语言和javascript语言是多么的
相似,WMLScript的变量类型有:Boolean、Interger、Floatin
g-point、String、Invalid
WMLScript的流程控制语言和javascript的相同,实例如下:
// if-else
if (x == y){
x = x * 3.25;
}else{
x = 0;
}
// for loop
for (var counter = 1; counter < 500; counter ++){
var i = counter * 1.05;
somefunction(i);
};
// while loop
while (i > j){
i--;
};
// break
for (var counter = 1; counter < 500; counter ++){
var i = counter * 1.05;
if (counter == 250) break;
somefunction(i);
};
//continue
for (var counter = -100; counter < 100; counter ++){
if (counter == 0) continue;
var x = 350/counter;
};
函数:
WMLScript的函数使用方法如下:
extern function identifier(FormatParameterList) Block ;
extern是说明函数是放在另外一个文件当中的。如下:
function RunTime(distance, speed){
var time = distance / speed;
return time;
};
此例出入distance以及speed两个参数,然后返回time的值。
如果调用的是WMLScript的內建函数,就必须加上这个函数所属的类名,例如调用
String类的length()函数,使用:
var a = String.length('just a test');
內建函数
WMLScript有六大內建函数:
Lang:包含数据形态、绝对值、随机数等。
Float:浮点数处理。
String:字符串长度(length)、字符位置(charAt)等字串处理。
URL:getReferer、getHost。
WMLBrowser:go、prev、next、refresh等浏览处理。
Dialogs:弹出(prompt、confirm、alert)等对话框。
首先我们先建立一个WML文件,WMLScriptExample.wml,內容如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="stuid" title="stuid:">
<do type="accept" label="Results">
<go href="WMLScriptExample.wmls#checkid($(stuid))"/>
</do>
<p>
Enter Stu_ID: <input type="text" name="stuid"/>
</p>
</card>
<card id="Results" title="Results:">
<p>
You entered:<br/>
Stu_ID: $(stuid)<br/>
</p>
</card>
</wml>
让用户输入学号,go的href连接到另外一个.wmls文件,调用checkid函数。再建
立一个WMLScriptExample.wmls文件,內容如下:
extern function checkid(stuid){
if (String.length(stuid) != 8){
WMLBrowser.setVar("stuid", "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 i = 1 to Len(myText) ' 对每一个字节进行处理
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
' 将传回的Unicode转换为十六进制值
next
End Function
实现的例子如下:(chinese.asp)
<% Response.ContentType="text/vnd.wap.wml;charset=UTF-8"
%>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<%
Function c2u(myText)
For i = 1 to Len(myText)
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
next
End Function
%>
<wml>
<card id="card1" title="UTF8">
<p>
<%=c2u("IT的事找赛迪网!!")%><br/>
</p>
</card>
</wml>
在诺基亚的仿真手机中浏览这个ASP文件,就可以看到中文了!
结束语
我们通过上面的介绍,也可以大致了解一下WAP技术的来龙去脉了,相信通过你自
己的不断实践,一定能够驾驭它的。其实WML和HTML一样属于一个静态的页面,要
想真正建设吸引用户的WAP站点,不光要仅仅依靠WML本身,还要配合各种运行在服
务器端的程序,比如ASP、PHP、JSP、CGI等等来实现丰富多彩的动态WAP
网站,这就是后话了,暂且不谈。随着国内的WAP技术大环境的越来越完善,将会有更
多的网站、ISP等投入到这场抢夺市场的战斗中来,相信WAP技术的可移动性和简易
操作性将会吸引越来越多的用户投身到广阔的无线网络中,对于我们WEB开发人员来
讲,掌握了WAP就掌握了未来!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -