WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章WAP教程WAP教程Delphi应用于移动电话的WML开发

Delphi应用于移动电话的WML开发
作者:Jani J vinen  来源:本站整理  发布时间:2005-11-4 0:45:31
application产生的WML页都需要一个公共的题头,这个例程定义了一个名字是WMLHeader 的常量来包含这个信息。

---- 存储返回到数据库中的数据当用户成功登录之后,用户重新回到海上探险的主菜单。通过这个菜单,用户可以选择查看客户的信息或者是订单的状态。如果客户选择用户信息的超链接,将执行MAWebModule Web 模块的 CustInfoAction方法的这个定义过的方法。

---- 首先,代码返回到随着post http命令的CustNo参数,当登录的用户的信息在客户表中被查找到以后,代码创建包括三个输入字段的WML代码。最初,三个输入字段包括客户的zip号码,城市,和state,(记着,这个state是口令). 用户可以调整这三个字段,他可以通过选择"Modify Info"命令,用户可以保存新的值返回到数据库。当用户选中这条命令的时候,将执行ModifyCustAction 方法。(见下图)



---- 在Delphi IDE 中的 MAWeb模块

procedure TMAWebModule.MAWebModuleModifyCustAction(
Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
var CustID, State, City, Zip : string;
begin
CustID := Request.ContentFields.Values['custid'];
State := Request.ContentFields.Values['State'];
City := Request.ContentFields.Values['City'];
Zip := Request.ContentFields.Values['Zip'];
with Response do begin
ContentType := MIMETypeWML;
try
if LocateCustomer(CustID) then
begin
DebugMessage('Saving customer data:'#13 +
'CustID="' + CustID + '"'#13 +
'State="' + State + '"'#13 +
'City="' + City + '"'#13 +
'Zip="' + Zip + '"'#13);
Customer.Edit;
CustomerState.AsString := State;
CustomerCity.AsString := City;
CustomerZip.AsString := Zip;
Customer.Post;
Content := WMLHeader +
'< card id="modifyok" title="Info ' +
'Modified" newcontext="true" >' + CRLF +
' < onevent type="ontimer" >' + CRLF +
' < go method="post" ' +
'href="/s cripts/ma_ooqs.dll/mainmenu" >' +
CRLF + ' < postfield name="custid" ' +
'value="' + HTTPEncode(CustID) + '"/ >' + CRLF +
' < /go >' + CRLF + ' < /onevent >' + CRLF +
' < timer value="30"/ >' + CRLF + ' < p >' +
CRLF + ' < b >Customer info succesfully '+
'modified.< /b >< br/ >' + CRLF + ' < /p >' + CRLF +
'< /card >' + CRLF + CRLF + '< /wml >' + CRLF;
end
else
Content := InvalidIDPageWML;
finally
Customer.Close;
end;
end;
Handled := True;
end;


---- figure6:存储用户输入的数据到customer表中。
---- 这段代码从Request.ContentFields 属性中提取新的客户信息,然后在Customer 表中查找正确的客户记录,然后调用Edit方法把这个表转入dsEdit状态,设置字段值(fields),最后调用Post方法提交记录。

---- 测试海上冒险程序为测试这个程序,你需要有一个Web服务器,它上面能运行ISAPI系统。这个例程已经在Microsoft IIS4.0下测试通过,但她应该也能够在其他的兼容产品上或者是IIS的其他版本的系统上运行。除了这台Web服务器之外,你还需要下在并安装Nokia WAP Toolkit version 1 。(截稿时,Nokia WAP Toolkit 1.3 的测试版本提供下载)。这个产品可以从Nokia的WAP站点免费下载 (Http://www.delphizine.com/include/Click_Redir.asp?Url=http://www.forum.nokia.com/. ) 这个开发工具不需要安装在和WEB服务器的同一台计算机上,因为说有它需要的仅仅是能通过IP网络连接到WEB服务器。当这个WAP开发工具打开时,他会显示一个欢迎项目(参见图2)。这个开发系统能模拟两个移动电话模块。为实现MAOOQS,使用这个开发工具参数菜单命令选择Nokia 6110型的电话。

---- 为定位这个程序的登录屏幕,从Go菜单的中选中Load Location command ,键入登录的login.wml文件的URL:http://localhost/login.wml.注意在做这些操作之前,这个login.wml文件需要被拷贝到web服务器的publish目录的根目录下面,不用说这时这台web服务器比喻已经成功的运行MAOOQS。

---- 下图显示的是我们的测试的海上探险应用程序的相关的屏幕。当这个login.wml文件被成功的登录之后,你将很快看到步骤1中的"Welcome to" 屏幕,几秒钟后,屏幕自动切换到step 2,为在输入字段中输入文本,点击wap电话键盘区的左上角的蓝色的"/"符号。点中之后,wap电话屏幕的左下角写的是"Edit",如果它写的是"Login",你需要点击上、下箭头按钮,因为这时不是编辑状态。

---- 当成功点中Edit 命令时,屏幕显示如step3所示的完整的文本输入编辑器。customer ID 字段只能输入数字,所以点击数字键一一输入相应的数字,如果你输入出错的话,右边的"/" 可以擦去最后一个字符。password 字段中可以输入字母和数字,所以你就输入相应的的password,有时你可能需要重复点击数字键以输入字母,例如:如果你需要输入字母"B",你需要快速点击按钮"1"两次惨能够输入这个字母。如果你使用移动电话输入文本的话,你就必须知道这种输入文本的方法。



---- 上图是Nokia 6110手机扩大的屏幕,这些step简介在MAOOQS程序中出现的次序从dll来的请求数据

---- 当the customer ID 和password 成功输入后,你将发现屏幕又出现了step 2中的画面。 稍稍等待"Login" 命令被激活,然后点击"/"按钮来选中命令,这将处理这个登录过程选中Login 命令来使得这台wap移动电话连接到web服务器的/s cripts/ 目录中的 MA_OOQS ISAPI应用程序,当然了,这时ISAPI DLL 已经被放置到web服务器的/s cripts/ 目录中,并且这台web服务器有足够的权限正常执行这些dll,如果每一步都很正常的话,这台wap移动电话就会接受到从dll返回回来的正常的wml数据。如果输入了不正确的customer ID 或者 password两者中任一项的话,就会显示如 setp 4中所示的屏幕,显示出不正确的ID屏幕;正常的话,显示如step 5中所示的主菜单。

---- wap移动电话上的箭头键是的你可以选择菜单命令中的项。点击"/"按钮,屏幕会显示如step 6所使得用户信息的屏幕,或者是订单细节的如step 9中的屏幕。再次按下"/"允许你在这三个页面之间相互切换。如果你使用如step 7中的屏幕中的Modify Info 命令来改变客户的信息的话,你将看到如setp 8所示的调整窗口。值得注意的是,wap设备通常没有"log out"

上一页  [1] [2] [3] 

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码