⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wap技术入门(下).txt

📁 C&C++论坛精华
💻 TXT
📖 第 1 页 / 共 2 页
字号:

件,用来编辑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 + -