分享
 
 
 

WAP技术入门(续)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

语法规则如下:

1、 每一行程序均以分号结尾

2、 注释方法:“//”或者“/* */”

3、 使用关键字“var”来声明变量

怎么样?从上面我们就可看出来,WMLScript语言和javascript语言是多么的相似,WMLScript的变量类型有:Boolean、Interger、Floating-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、爱立信R320S等等)都是使用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就掌握了未来。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有