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

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

WAP 输入
使用Nokia WAP 工具包, 我们现在可以加载http://localhost/cgi-bin/wap.exe 然后再一次看到第一个图所显示的输出结果. 如果我们单击编辑按纽, 我们就能够输入荷半盾的值(或者欧元, 这取决于我们在单击编辑按纽的时候选择的是哪一个域). 你可以在图D 中看到这个结果.

图D

输入一个值进行转换

如果你单击OK 按纽然后单击Convert(转换), 转换过程就开始了, 这意味着wap.exe WAP服务应用程序的 /convert PathInfo 单元被调用了. 当然, 我们必须首先实现它, 实现代码如所示.

procedureTWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
    Guilder,Euro: Integer;
begin
    Guilder := StrToIntDef(Request.ContentFields.Values['Guilder'],0);
    Euro := StrToIntDef(Request.ContentFields.Values['Euro'],0);
    if Guilder = 0 then
        Guilder := Round(Euro * 2.20371)
    else
        Euro := Round(Guilder / 2.20371);

    Response.ContentType := 'text/vnd.wap.wml';
    Response.Content :=
        '<?xml version="1.0"?> ' + #10#13 +
        '<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"' +
        ' "http://www.wapforum.org/DTD/wml_1.1.xml">' + #10#13 +
        #10#13 +
        '<wml>' +
        '<card id="euro" title="Euro Converted">' +
        '<p>' +
        IntToStr(Guilder) + ' guilder equals ' + IntToStr(Euro) + ' euros!' +
        '</p>' +
        '<do type="next" label="Home">' +
        ' <go href="/cgi-bin/wap.exe"/>'+
        '</do>' +
        '</card>' +
        '</wml>';
end;



唯一新鲜的东西是我们使用Request 对象的ContentFields 属性收集荷兰盾和欧元的值的部分。 既然 ContentFields.Values 返回一个字符串, 我们必须用StrToInt 函数将它转换成一个整数(或者StrToIntDef函数, 它在转换失败的时候会返回一个预先指定的缺省值).

如果Guilder(荷兰盾)的值是0, 我们很可能是输入了一个欧元值, 这时应该将欧元值转换成荷兰盾. 否则, 我们应该将荷兰盾的值转换成欧元.

结果是通过象我们刚才那样生成动态的WML来显示. 注意到在用户单击home 按纽的时候,我们再次使用了行为部分(或者这是WAP 会话的结束), 重新启动了wap.exe 应用程序. 最后的输出结果在图E 中显示.

图E

输出结果

为移动设备进行开发
我已经向你演示了如何建立你自己的Web 服务器来注册WML 和WBMP 文件类型, 如何使用Nokia WAP 工具包, 如何使用Delphi 6 和 WebBroker 技术来生成动态的WML, 如何从WAP 设备获取和处理WML 输入. 现在轮到你做更多的工作了.

额外的资源
你可以访问WAP 论坛Web 站点来获取WAP 2.0 最新版本的更多信息. 我还推荐你访问Nokia 论坛来获取Nokia 移动设备工具互联网应用(WAP)开发包, 以及阅读由Prentice Hall 出版的Essential WAP for Web Professionals (ISBN: 0-13-092568-3). 最后, 你可能会对IBM 开发者Web 站点上最近的一篇关于WAP 流行势态的文章.
 


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