中国被爱可以在线[博客园]

普及WAP 让每个拥有自己的企业WAP网站......

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  WAP是英文“Wireless Application Protocol”的缩写,是“无线应用协议”之意。目前开发WAP主要使用的是WML标记语言。WML是一种基于XML(扩展标记语言)的一种标记语言。这种语言是为无线设备用户提供交互界面而设计的。这些无线设备包括电话、呼机和个人数字助理(Personal Digital Assistants)等等。
  WML是一种语言,但算不上是程序语言。因为WML所定义的范围只限于如何表现文字、图片以及如何建立文件的链接等。单纯使用WML构成的文件只能称之为静态网页,所以我们要想让网页具备动态功能,可以借助ASP、JSP等网页技术实现。
  QuickWAP就是一款辅助编写WAP网页程序的ActiveX组件,不仅ASP程序等能够调用其中的模块,而且还可以被应用程序轻松调用。下面我们重点介绍QuickWAP在开发WAP网页程序方面中的应用。

WAP编码转换

  首先我们来用WML语言开发一个导航页面(文件后缀为.wml),效果如图1所示。

查看更多精彩图片
图1

  为了更好的通用于WAP手机,我们采取了UTF-8编码。代码中需要将中文字符转换提前为UTF-8编码的形式,代码如下。

<?xml version="1.0" encoding="utf-8"?>
<!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=300" forua="true"/>
</head>
<card id="FirstCard" title="&#x4E2D;&#x56FD;&#x88AB;&#x7231;&#x53EF;&#x4EE5;&#x5728;&#x7EBF;">
<p align="left">
WAP&#x7F51;&#x7AD9;&#x5BFC;&#x822A;<br/>
++++++++++++++++++<br/>
<a title="&#x786E;&#x5B9A;" href="http://wap.sohu.com">&#x641C;&#x72D0;</a>
<a title="&#x786E;&#x5B9A;" href="http://wap.sina.com">&#x65B0;&#x6D6A;</a>
<a title="&#x786E;&#x5B9A;" href="http://wap.163.com">&#x7F51;&#x6613;</a>
<br/>
<a title="&#x786E;&#x5B9A;" href="http://wap.yahoo.com">&#x96C5;&#x864E;</a>
<a title="&#x786E;&#x5B9A;" href="http://wap.baidu.com">&#x767E;&#x5EA6;</a>
<a title="&#x786E;&#x5B9A;" href="http://wap.china.com">&#x4E2D;&#x534E;</a> <br/>
++++++++++++++++++<br/>
<a title="&#x786E;&#x5B9A;" href="Index.asp">
&#x8FD4;&#x56DE;&#x4E0A;&#x7EA7;
</a>
<br/>
</p>
</card>
</wml>

  如果采用ASP编写的话,我们可以动态实现UTF-8编码,这样方便了我们修改,代码如下(文件后缀为.asp)。

<%Response.ContentType="text/vnd.wap.wml"%>
<?xml version="1.0" encoding="utf-8"?>
<!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=300" forua="true"/>
</head>
<card id="FirstCard" title="<%=Uni("中国被爱可以在线")%>">
<p align="left">
<%=Uni("WAP网站导航")%><br/>
++++++++++++++++++<br/>
<a title="<%=Uni("确定")%>" href="http://wap.sohu.com"><%=Uni("搜狐")%></a>
<a title="<%=Uni("确定")%>" href="http://wap.sina.com"><%=Uni("新浪")%></a>
<a title="<%=Uni("确定")%>" href="http://wap.163.com"><%=Uni("网易")%></a>
<br/>
<a title="<%=Uni("确定")%>" href="http://wap.yahoo.com"><%=Uni("雅虎")%></a>
<a title="<%=Uni("确定")%>" href="http://wap.baidu.com"><%=Uni("百度")%></a>
<a title="<%=Uni("确定")%>" href="http://wap.china.com"><%=Uni("中华")%></a>
<br/>
++++++++++++++++++<br/>
<a title="<%=Uni("确定")%>" href="Index.asp">
<%=Uni("返回上级")%>
</a>
<br/>
</p>
</card>
</wml>
<%
Function Uni(Byval Chinese)
Dim i
For i = 1 to Len (Chinese)
A=Mid(Chinese, i, 1)
Uni=Uni & "&#x" & Hex(Ascw(A)) & ";"
Next
End Function
%>

  我们看到用ASP编写动态WAP网页程序,第一行必须声明ASP文件的处理方式。然后代码里面还要再定义转码函数,然后利用转码函数对每个中文字符进行UTF-8编码转换。
  使用ASP编写WAP程序,确实在编辑修改方面方便了很多。那么下边我们看看QuickWAP是怎样编写这个代码的,如下所示(文件后缀为.asp)。

<%
Set Wap=Server.CreateObject("QuickWap.WapNetSdk")
Wap.CardTitle="中国被爱可以在线"
Wap.PageHeader
'以下为文件正文。
Wap.WriteRow "WAP网站导航"
Wap.WriteRow "++++++++++++++++++"
Wap.WriteOut Wap.A("确定","http://wap.sohu.com","搜狐") & " "
Wap.WriteOut Wap.A("确定","http://wap.sina.com","新浪") & " "
Wap.WriteOut Wap.A("确定","http://wap.163.com","网易") & " <br/>"
Wap.WriteOut Wap.A("确定","http://wap.yahoo.com","雅虎") & " "
Wap.WriteOut Wap.A("确定","http://wap.baidu.com","百度") & " "
Wap.WriteOut Wap.A("确定","http://wap.china.com","中华") & " <br/>"
Wap.WriteRow "++++++++++++++++++"
'以下为返回链接等信息。
Wap.WriteRow Wap.A("确定","Index.asp","返回上级")
Wap.PageFooter
Set Wap=Nothing
%>

  在上边的文件代码首末我们分别创建和销毁了QuickWAP的实例化对象“Wap”,PageHeader和PageFooter两个函数创建了WAP的框架,在这个框架之间您可以像编写ASP程序那样编写正文。WriteOut和WriteRow是输出字符串的函数,并且已经内置了UTF-8编码的功能,可以直接使用它们输出要显示的内容。

  比较以上三种形式的WAP程序代码,我们发现使用QuickWAP的代码最简单,除此之外他还有一个更明显的优点那就是在IE中查看也可以执行不误,而前边两个文件就必须使用手机或WAP模拟器了,在IE中浏览的效果如图2所示。

查看更多精彩图片
图2

  使用QuickWAP编写的程序代码兼容性好了,我们也就不用再专门做WEB网页让人们在IE中预览我们的WAP站点效果,同时您在IE中查看网页的文件源代码仍然是标准的WML代码,可以直接保存为WML文件执行。

分页功能

  假如我们想把下边的文字分页怎么办?
  "对于熟悉ASP的开发人员,很容易就能够掌握QuickWAP组件的,因为QuickWAP的诞生就是为辅助动态WAP程序产生的。"
  您也许认为很简单,文字很短,有什么难的呢,对于WML文件来说可能需要做两个卡片或两个文件,而对于ASP可要编写分页函数来实现。
  在这里我们看看QuickWAP给我们提供了怎样的解决方案,我们先看分页代码实例的效果图,如图3、图4、图5所示。

查看更多精彩图片
图3

查看更多精彩图片
图4

查看更多精彩图片
图5

  如果让您用ASP或WML程序来编写这个程序的话,至少需要几分钟吧,请看下边用半分钟时间用QuickWAP来实现它的代码。

<%
Set Wap=Server.CreateObject("QuickWap.WapNetSdk")
Wap.CardTitle="中国被爱可以在线"
Wap.PageHeader
'以下为文件正文。
Dim Content
Content="对于熟悉ASP的开发人员,很容易就能够掌握QuickWAP组件的,因为QuickWAP的诞生就是为辅助动态WAP程序产生的。"
Wap.WriteRow "++++++++++++++++++"
Wap.WriteRow Wap.EasyMorePage(Content,25)
Wap.WriteRow "++++++++++++++++++"
'以下为返回链接等信息。
Wap.WriteRow Wap.A("确定","Index.asp","返回上级")
Wap.PageFooter
Set Wap=Nothing
%>

  以上代码中EasyMorePage是一个功能简易的分页函数,它需要设置两个变量,第一个变量为要分页的字符串内容,第二个变量为设置每页显示的字符数量。该函数可以根据两个变量的值产生不同的翻页链接代码。

中文字符传递

  像WEB站点那样在URL地址中传递中文字符,并且正确显示,不产生乱码现象。执行的效果图6如下所示。

查看更多精彩图片
图6


<%
Set Wap=Server.CreateObject("QuickWap.WapNetSdk")
Wap.CardTitle="中国被爱可以在线"
Wap.PageHeader
'以下为文件正文。
Wap.WriteRow "++++++++++++++++++"
Wap.WriteRow Wap.A("确定",Wap.ThisFileName & "?Site=" & Wap.SubmitText("WAP之家"),"点击查看您喜爱的WAP站")
Wap.WriteRow Wap.RequestText("Site")
Wap.WriteRow "++++++++++++++++++"
'以下为返回链接等信息。
Wap.WriteRow Wap.A("确定","Index.asp","返回上级")
Wap.PageFooter
Set Wap=Nothing
%>

  在上边的代码中SubmitText和RequestText分别用于提交和接收中文字符,ThisFileName动态取到此文件的名字,所以即使您改变了文件名,程序也可以顺利执行。

  在编写WAP程序时,开发者碰到的首要问题就是解决WAP中的编码、文章分页以及中文字符提交传递等问题,QuickWAP都给出了完美的解决方案。对于在数据库方面的应用QuickWAP也毫不逊色,它全力支持Microsoft SQL Server2000和Microsoft Access2000以上版本数据库,是开发功能强大的动态WAP网站不可多得的辅助软件。

  QuickWAP采用ActiveX技术让WAP程序执行更快、更稳定、更安全,只要服务器成功安装了QuickWAP,那么您就可以在WAP(或WEB)程序中调用其中的功能模块。您可以任意迁移您的WAP程序,而不必像网上很多WAP自助建站那样总是依赖于别人的框架之下,有了QuickWAP,您也可以拥有一个强大的、属于自己的WAP网站,早日实现自己企业的无线信息化。


posted on 2005-12-02 17:21  中国被爱可以在线  阅读(633)  评论(0编辑  收藏  举报