用Delphi 6 编写基于WAP的无线应用

ZDNet软件频道 时间:2001-10-12 作者: |  我要评论()
本文关键词:Delphi WAP
我们会讨论WAP 并且让你看一个为无线世界编程的简单的例子.

我们都曾为传统的办公电脑写过程序, 不管它们是大型的主机还是膝上电脑. 但是无线设备的应用程序呢? 如果把你的程序在一个象手机这样的东西上运行的时候会怎么样呢? 那就是无线应用协议(WAP)带来的一切. 我们会讨论WAP 并且让你看一个为无线世界编程的简单的例子.


WAP 基础

让我们首先了解一些理论背景. WAP 被用来将支持WAP 的无线设备(比方WAP 电话)连接到一个WAP 网关然后让它们使用WAP 应用程序. 一个WAP 应用的集合通常可以在我称之为WAP 接入点的地方找到.

在1997 年, Nokia, Motorola, Ericsson, 和 Phone.com 联合起来成立了WAP 论坛. 就象许多标准一样, WAP 一直在改进并努力取得大众市场的接受.

本文不会把注意力放到WAP 本身而是你可以用来创建WAP 应用程序的工具和语言. 特别的, 我们将学习无线标记语言(WML), 同时我将向你展示如何使用Delphi 6 来为WAP 应用创建动态的WML.

要获得WAP 和相关的工具和工具包的最新消息, 你应该访问Nokia 公司的站点,在那里你还可以下载 Nokia 移动设备工具互联网应用开发包3.0 版和老一点的Nokia WAP 工具包2.1 版, 我用它来在我的笔记本电脑上模拟一个WAP 手机.

WML
我们可以使用Delphi 6 来创建WAP 应用, 它就和通常的Web 服务器应用程序是一样的. 唯一的区别是一个通常的Web服务程序返回HTML, 而一个WAP Web服务应用程序返回WML. 虽然WML是基于XML的, 而且它有时看起来象HTML, 但它们在某些方面是很不相同的, 对于小的语法错误它也要严格得多.

Delphi 6
Delphi 6 对于XML 和HTML 有着内建的支持, 但没有特别的WML 组件. 幸运的是, 我们还可以使用通常的Web 服务应用向导. 但是, 我们必须自己生成WML 内容, 就象我在下面的步骤中展示的那样. 如果你想对 WebBroker(Delphi, C++Builder 和 Kylix里都有对它的支持) 结构有一个更细致的概念, 你可能希望在我自己的个人站点上查看一些相关的文章.

WAP 设备上可以显示的可视化组件叫做卡片(card). 一个WML 文档叫做deck(一叠), 它由许多card组成. WML card 以两行XML 定义开始, 然后是wml 置标本身(它包括一个开始和结束置标, 就象你在表A 中看到的那样). 每一个单一的card 都是放在一个card置标里的而且由一个可视(显示)的部分和一个非可视(动作)部分够成. 显示的部分放在<p>...</p>置标之间, 而行为部分则通常包括一个<do>...</do>对.

作为一个例子, 让我们考虑一个WML card, 它要求用户以(荷兰)盾或者是欧元输入一定量的钱数, 然后在这个小小的荷兰盾到欧元(或者欧元到荷装盾)的转换演示程序中使用. 这个card 会如下面一样显示.

<?xml version="1.0"?> ' + #10#13 +
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN "http://www.WAPforum.org/DTD/wml_1.1.xml">

<wml>
<card id="euro" title="Euro Conversion">
<p>
Please enter: <br/>
Guilders: <input name="Guilders" format="*N"/><br/>
Euro: <input name="Euros" format="*N"/>
</p>
<do type="prev" label="Convert">
    <go method="post" href="/cgi-bin/WAP.exe/convert">
        <postfield name="Guilder" value="$(Guilders)"/>
        <postfield name="Euro" value="$(Euros)"/>
    </go>
</do>
</card>
</wml>


使用Nokia WAP 工具包, 我们能够在WAP 仿真器上显示这个WML card, 如图A所示.

图A



上面文章中的WML在模拟器上看起来是这个样子.


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134