WMLScript是属于无线应用协议WAP应用层的一部分,使用它可以向WML卡片组和卡片中添加客户端的处理逻辑,目前最新的版本是1.1版。WMLScript 1.1是在欧洲计算机制造商协会制定的ECMAScript脚本语言的基础上,经过修改和优化而制定的。它能够更好地支持诸如移动电话类的窄带宽通信设备,在WML编程中使用WMLScript可以有效地增强客户端应用的灵活性,而且,我们也以把WMLScript作为一个单独的工具使用,开发出功能强大的WAP网络应用和无线网页。本章我们将详细讲解WMLScript 1.1编程的基础语法知识,如基本规则、变量与数据类型、操作符与表达式等。为了叙述上的简便,以后我们将“WMLScript 1.1”简称为“WMLScript”。
7.1 简单例子:WML程序中调用WMLScript函数
经过前两章的学习,熟悉C语言的读者可能会认识到,WML的函数功能、逻辑运算功能等都是十分有限的。而WMLScript提供了丰富的函数功能,我们在WAP应用开发中可以使用WMLScript来增强WML编程,调用WMLScript语句和函数的命令可以直接写在WML
7.3 WMLScript基本规则
WMLScript在许多基本规则方面沿用了WML的做法。不过,由于WMLScript是以C语言为蓝本而制定的,所以它的语法特征和C语言非常相像。如果大家对C语言比较熟悉,那么学习和掌握这部分内容应当是比较容易的。
7.3.1 WMLScript与URL
与WML一样,WMLScript也沿用了WWW和HTML访问资源的URL、HTTP等规范,并扩大了URL使用的范围。在WMLScript中,不仅超链接、文件路径及文件名可以作为URL处理,外部函数、访问控制信息等也可作为URL处理。
为此,WMLScript采用了WML的变通方法,即改进HTML命名资源位置的方式,采用程序段锚点(Fragment Anchor)的形式来处理资源定位。程序段锚点根据文档URL规则进行定义,并按照程序段标识符前加井字号(#)的方式书写。使用程序段锚点,WMLScript程序可以在WMLScript编译单位内定位任一指定的函数,并可在调用该函数的同时传递所需的参数。
例如,WAP手机用户通过浏览器调用外部WMLScript函数时,可先写出该函数所在的URL地址,如http://www.acme.com/myScripts.scr;然后,将函数名及参数作为程序段锚点处理,比如testFunc('Test%20argument', -8),这样最后含有程序段锚点的URL地址书写格式为:http://www.acme.com/myScripts.scr#testFunc('Test%20argument', -8)。注意其中加上了井字号(#)。
浏览器接到这样一个调用后,将首先执行访问控制检查。如果调用者没有访问权限,则终止该函数的调用。否则,继续执行调用操作,将锚点中的函数名与编译程序中的外部函数进行匹配,如果不合适,则终止执行;否则,就进一步对函数参数的格式、个数、类型、参数值属性等进行判断,如果符合要求,则函数调用成功,否则拒绝函数调用。
7.1 简单例子:WML程序中调用WMLScript函数
经过前两章的学习,熟悉C语言的读者可能会认识到,WML的函数功能、逻辑运算功能等都是十分有限的。而WMLScript提供了丰富的函数功能,我们在WAP应用开发中可以使用WMLScript来增强WML编程,调用WMLScript语句和函数的命令可以直接写在WML
7.3 WMLScript基本规则
WMLScript在许多基本规则方面沿用了WML的做法。不过,由于WMLScript是以C语言为蓝本而制定的,所以它的语法特征和C语言非常相像。如果大家对C语言比较熟悉,那么学习和掌握这部分内容应当是比较容易的。
7.3.1 WMLScript与URL
与WML一样,WMLScript也沿用了WWW和HTML访问资源的URL、HTTP等规范,并扩大了URL使用的范围。在WMLScript中,不仅超链接、文件路径及文件名可以作为URL处理,外部函数、访问控制信息等也可作为URL处理。
为此,WMLScript采用了WML的变通方法,即改进HTML命名资源位置的方式,采用程序段锚点(Fragment Anchor)的形式来处理资源定位。程序段锚点根据文档URL规则进行定义,并按照程序段标识符前加井字号(#)的方式书写。使用程序段锚点,WMLScript程序可以在WMLScript编译单位内定位任一指定的函数,并可在调用该函数的同时传递所需的参数。
例如,WAP手机用户通过浏览器调用外部WMLScript函数时,可先写出该函数所在的URL地址,如http://www.acme.com/myScripts.scr;然后,将函数名及参数作为程序段锚点处理,比如testFunc('Test%20argument', -8),这样最后含有程序段锚点的URL地址书写格式为:http://www.acme.com/myScripts.scr#testFunc('Test%20argument', -8)。注意其中加上了井字号(#)。
浏览器接到这样一个调用后,将首先执行访问控制检查。如果调用者没有访问权限,则终止该函数的调用。否则,继续执行调用操作,将锚点中的函数名与编译程序中的外部函数进行匹配,如果不合适,则终止执行;否则,就进一步对函数参数的格式、个数、类型、参数值属性等进行判断,如果符合要求,则函数调用成功,否则拒绝函数调用。