WAP网站建设攻略教程(3)

 2013年1月30日 |  0 条评论 |   864

WML学习(六)

事件

WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用<do>标签来处理,另一类是相关页面内部的事件,用<onevent>标签来处理。

<do>的语法如下:<do type=”type” label=”label” name=”name” optional=”false true”>任务</do>,任务就是以前提到的四种任务。<do>的属性中,type是必选的,其他为可选。

*label属性,指定了软按钮在屏幕上的显示文本。目前type属性为delete,help,prev时该属性无效。

*name属性,为<do>取个名字,同一的CARD里的<do>不能重名。如果CARD级的<do>和DECK级的<do>同名,则覆盖DECK级的<do>。

*optional属性,指定手机是不是可以忽略这个事件,默认值是false。

*type属性,指定触发的事件,具体如下;

type值    触发原因

accept    调用ACCEPT按钮机制

delete    调用DELETE按钮机制

help     调用HELP按钮机制

options   调用选择按钮机制

prev     调用PREV按钮机制

reset    调用清除和重新设定手机状态时的RESET机制(目前不支持)

unknown    调用unknown机制,等于type=””(目前不支持)

vnd. co-type 调用厂商特定的机制(目前不支持)

X-*, x-*   供以后使用(不保留)(目前不支持)

test6.wml

—————

<?xml version=”1.0″?>

<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml>

<head>

<meta http-equiv=”Cache-Control” content=”max-age=0″/>

</head>

<card id=”card0″ ordered=”false”>

<do type=”accept” label=”InputName” name=”do1″>

<go href=”#card01″/>

</do>

<p>

NAME:<input name=”userName” title=”User Name” type=”text” format=”*M” emptyo

k=”false” maxlength=”12″/>

</p>

</card>

<card id=”card01″>

<p>

You name is $(userName:noesc).

</p>

</card>

</wml>

<onevent>的语法如下,<onevent type=”type”>任务</onevent>,必选属性type的取值如下:

type值     如果用户执行了以下操作就执行任务

onpick     用户选择或不选一个<option>项时。

onenterforward 用户使用<go>任务到达一个CARD时。

onenterbackward 用户使用<prev>任务返回到前面的CARD时,或者按BACK按钮时。

ontimer     当<timer>过期时。

test7.wml

—————

<?xml version=”1.0″?>

<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml>

<head>

<meta http-equiv=”Cache-Control” content=”max-age=0″/>

</head>

<card id=”card0″ ordered=”false”>

<p>

Please select a city…

<select title=”Cities List” name=”city”>

<option title=”Beijing” value=”Beijing”>

<onevent type=”onpick”>

<go href=”#card01″/>

</onevent>Beijing</option>

<option title=”Shanghai” value=”Shanghai” onpick=”#card01″>Shanghai</option>

<option title=”Hongkong” value=”Hongkong” onpick=”#card01″>Hongkong</option>

</select>

</p>

</card>

<card id=”card01″>

<p>

You are Living in $(city:noesc)

</p>

</card>

</wml>

<timer/>可以用来在用户不进行任何操作的一段时间后,自动执行一个任务,任何激活CARD页面的任务和用户操作都会启动<timer/>,而任务进行时,<timer/>就停止。

每个CARD只能有一个<timer/>,一个<timer/>只能触发一个任务。语法如下:<timer name=”variable” value=”value”/>,其中name为可选属性,指定为一个变量名,当退出该CARD时,该变量存储此时定时器的值,当定时器超时时,手机将该变量设为0;value为必选属性,用来设置定时器的定时值,最小单位为0.1秒。

test8.wml

—————

<?xml version=”1.0″?>

<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml>

<head>

<meta http-equiv=”Cache-Control” content=”max-age=0″/>

</head>

<card id=”card1″ ontimer=”#card2″>

<timer name=”time1″ value=”50″/>

<p align=”center”>

After 5s, goto card2

</p>

</card>

<card id=”card2″>

<onevent type=”ontimer”>

<go href=”#card1″/>

</onevent>

<timer name=”time2″ value=”50″/>

<p align=”center”>

Here is card2!

</p>

</card>

</wml>

再提一下,<onevent> <timer> <do>三者必须按以上顺序写。

此外在DECK级还可以加入<template>,用来将事件捆绑在DECK级上,语法如下:

<template onenterforward=”url” onenterbackward=”url” ontimer=”url”>

<do>或者<onevent>

</template>

test9.wml

—————

<?xml version=”1.0″?>

<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml>

<head>

<meta http-equiv=”Cache-Control” content=”max-age=0″/>

</head>

<template>

<do type=”accept” label=”deckPress” name=”do1″>

<go href=”#card01″/>

</do>

</template>

<card id=”card0″ ordered=”false”>

<do type=”accept” label=”cardPress” name=”do1″>

<go href=”#card02″/>

</do>

<p>

Press ACCEPT…

</p>

</card>

<card id=”card01″>

<p>

Here is card01

</p>

</card>

<card id=”card02″>

<p>

Here is card02

</p>

</card>

</wml>

WML学习(七)

CGI编程

1)在WEB服务器上添加WML的MIME类型

对于IIS4,可在其管理器里的站点属性中加入新的MIME类型,后缀.wml和 MIME类型text/vnd.wap.wml。

对于PWS,可修改注册表,先在 HKEY_CLASSES_ROOT层加入主键.wml,再加入串值Content Type为text/vnd.wap.wml,然后在HKEY_LOCAL_MACHINE\Software\CLASSES\MIME\Database\Content Type\中加入主键text/vnd.wap.wml,再加入串值Extension为.wml。

以前提到的HDML也用类似的方法。

2)以http方式访问wml文件

在手机浏览器的URL栏里输入http://localhost/test.wml,就可以访问WML文件了。

3)CGI设计

和普通CGI变成的方式差不多,只是返回结果时,先要输出Content-Type为text/vnd.wap.wml,然后再输出WML内容。

test10.wml

—————

<?xml version=”1.0″?>

<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml>

<head>

<meta http-equiv=”Cache-Control” content=”max-age=0″/>

</head>

<card id=”card0″>

<do type=”accept” label=”Input Name” name=”do1″>

<go href=”http://localhost/test.asp” method=”post”>

<postfield name=”uid” value=”123456″/>

<postfield name=”uname” value=”$(userName:esc)”/>

</go>

</do>

<p>

NAME:<input name=”userName” title=”User Name” type=”text” format=”*M” emptyok=”false” maxlength=”12″/>

</p>

</card>

test10.asp

—————

<%

uid=Request.Form(“uid”)

userName=Request.Form(“uname”)

Response.ContentType=”text/vnd.wap.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>

<p>

USERNAME:<%=userName%>

USER__ID:<%=uid%>

</p>

</card>

</wml>

WAP网站服务器配置

设置APACHE WEB SERVER

不管是NT 还是UNIX 或LINUX ,都是修改 Apache 安装目录下的conf/mime.types文件在该文件中增加以下内容:

text/vnd.wap.wml .wml

image/vnd.wap.wbmp .wbmp

application/vnd.wap.wmlc .wmlc

text/vnd.wap.wmls .wmls

application/vnd.wap.wmlsc .wmlsc

存盘

重新启动APACHE WEB SERVER 即可。

基于WINDOW NT平台的IIS设置WAP SERVER

只要按照以下的简单设置,就可以让NT IIS成为WAP服务器,您可以撰写WML网页或者开发各种服务。

设定方式:(先确定NT Server已经安裝IIS了服务)

执行NT操作系统下的【开始】/【程序】/【Windows NT Option Pack】/【IIS 4.0】/I

nternet服务管理员。

在IIS服务管理员窗口內,点选主机电脑名称后,按鼠标右鍵,点选“属性”选项;

在属性窗后下部有一个文件类型按钮,单击此按钮,会出现文件类型界面;

单击‘新增类型’按钮,然后在相关的扩展名栏中填写 .wml ,在内容类型(MIME)栏中填写 text/vnd.wap.wml

单击‘确定’按钮

重复以上步骤将以下WML类型新增至MIME內:

相关的扩展名 內容类型(MIME)

.wml  text/vnd.wap.wml

.wmlc application/vnd.wap.wmlc

.wmls  text/vnd.wap.wmlscript

.wmlsc  application/vnd.wap.wmlscriptc

.wbmp  image/vnd.wap.wbmp

文章字数统计:5342 | 百度已收录

  |  pc蛋蛋微信群/网站建设  


微部落博客编辑整理发布,如有侵犯您的版权,请提供相关版权证明,博主将立即删除。
·博客大全  博客网址之家  博客导航  来路IP首页展示!   ·免费收录  ·免费推广你的博客   114.vprol.com
如果本文对您有用就 打个赏吧微信 OR 支付宝 扫描二维码
pay_weixin     pay_weixin
金额随意,您的支持是我的动力~

草根站长,博客导航,博客大全,博客网站,增加网站流量
回复 取消

欢迎评论发言,灌水及广告评论将被定期删除!