WAP 构架
URL
http://www.motorola.com/great.wml
http://www.motorola.com/great.wml#login
Content Type
wml : text/vnd.wap.wml
wmlc : application/vnd.wap.wmlc (经过编码 WML 数据类型)
wmls : text/vnd.wap.wmlscript
wbmp : image/vnd.wap.wbmp (BMP 图象 )
其他可选的数据类型:
wmlsc : application/vnd.wap.wmlscriptc
wmlscript : text/vnd.wap.wmlscript
ws : text/vnd.wap.wmlscript
wsc : application/vnd.wap.wmlscriptc
WML 字符集
元素和属性
1 .一个完整的 WML 标记有以下两种格式:
变量
$identifier
$(identifier)
$(identifier:conversion)
‘ $ ’符号
This is a $$ character.
Balance left is $10.00.
Newcontext 属性
Newcontext 等于 true 或 false ,将决定浏览是否做以下事情:
大小写敏感
页面和卡片
WML 标记对
WML 例子
Hello world !
This is the first card…
This is the second card.
Goodbye
文件声明
事件与导航
Do 元素
任务
Setvar 元素
Select 元素和 Option 元素
Input 元素
Text 元素
Welcome to…
Mobile
ADK
超级链接
1 .
2 . follow me
3 .
Timer 元素
Hello World !
注释
bold text…
…
…
]]>
Template 元素
…
…
Table 元素
One | Two |
1 | 2 |
BA | B |
One | Two |
1 | 2 |
BA | B |
图标
Telecom 99
Postfield 元素
事件
Help
Hello
WML 核心数据类型
ID 和 Class 属性
WML 编程指导
创建一个新的 WML 文件
“http://www.wapforum.org/DTD/WML_1.1.xml”>
修改卡片
“http://www.wapforum.org/DTD/wml_1.1.xml”>
MADK WML DEMO.
增加动作
“http://www.wapforum.org/DTD/wml_1.1.xml”>
MADK WML DEMO.
Welcome to the wireless bookshop.
建立一个动画消息
Welcome to…
the Wonderful
Wireless
Bookstore.
建立选择列表
BookStore.
Science or novel:
更多的选择
select science title:
select novel title:
Scrollbar 与 Setvar
Click accept to find the
Price and enter number of copies you need:
使用 Input
select number of copies:
name:
address:
选择信用卡类型
what kind of credit card?
输入信用卡号码
card number
信用卡过期日期
expiration date
确认
Each is $$ $(price), you ordered $(unint) copies,
Shipping is
$(ship),andtotalis
64,
Thank you ! Bye Bye !
复合卡片的应用
address:
复合站点的应用
address:
调用 WMLScript 函数
Each is $$ $(price),
You ordered $(unit) copies,
Shipping is $$ $(ship), and
Total is $$ $(total)
WMLScript 例子
//wml script used by book store application
extern function calculateTotal(a,b,c)
{
//a: unit price
//b: number of units
//c: shipping charges
var total=a*b+c;
WMLBrowser.setVar(“total”,total);
WMLBrowser.refresh();
}
WBMP 格式
经过仔细地研究,发现 WBMP的格式如下(例如Width=16,Height=15的一个白色的画面):
0x00,0x00,0x10,0x0f,0xff,0xff......,0xff。
头两个字节为0,现在还不清楚它的用途。
第三个字节为Width,第四个字节为Height,后面的是数据。
数据有以下特点:用一个Bit对应一个Pixel。0表示黑色,1表示白色。高位开始到底位结束对应着从左到右,数据从低地址到高地址对应着从上到下。一个字节可以表示8个像素,不足的部分可以用0补齐。
下面是一张太阳的图片,仅供参考。
0x00,0x00,//Unknown or reserved,maybe the mark for the wbmp
0x14,//Width
0x14,//Height
//Pixel data
0xfa,0xf5,0xf0,0xfb,0x6d,0xf0,0xfb,0xad,0xf0,0xfb,
0xdd,0x80,0x1b,0xfc,0x70,0xe7,0x1f,0xe0,0x7c,0xe7,
0xd0,0xbb,0xfb,0xd0,0xdb,0xfb,0xb0,0xd7,0xfd,0x70,
0xb7,0xfd,0xb0,0x77,0xf5,0xd0,0xfb,0xeb,0xe0,0xfb,
0xdb,0xf0,0x1c,0xe7,0x80,0xc7,0x1c,0x70,0xf7,0xfd,
0xf0,0xf7,0xbf,0xf0,0xf6,0x5d,0xf0,0xf5,0xed,0xf0
因此在知道了WBMP的格式后,就可以在WAP移动设备上做出各种图形,甚至是绘图。本来WAP终端设备一般是不支持图形模式,但是可以在服务端将所有的图形按照WBMP的格式准备好再送往WAP终端设备,那么看起来就好象在WAP终端设备上直接绘图。大家可以去 http://www.infoislive.com/demo 看看。