DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: aaa27143721
今日帖子: 20
在线用户: 26
导航: 论坛 -> 文档资料 斑竹:liumazi,ruralboy  
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2013/1/28 15:02:16
标题:
Android手机访问QuickBurro+Delphi提供的服务 浏览:3887
加入我的收藏
楼主:     Basic4android 是一个简单但功能强大的 Android 应用开发环境。Basic4android 语言跟 Visual Basic 予以类似,支持更多的对象。Basic4android 将代

码编译成 Android 原生应用,无需其他运行环境的支持。Basic4android包含一个强大的GUI设计器,内建对多屏和坐标的支持,不需要开发者再写XML。
开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。
Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行高级应用开发。这些库函数包括:SQL数据库、GPS、串口(蓝牙)、照

相机、XML、JSON、Web服务(HTTP)、后台服务、动画、网络(TCP和UDP)、文本阅读(TTS)和声音识别、Web浏览、移动电话广告(AdMob)、图表、OpenGL、

图像,等等。

    通过Basic4android 的HTTP组件或TCP组件,可以标准的HTTP协议形式访问QuickBurro中间件的Web服务,若指定URL为QuickBurro的虚拟页面,则会自动映射

到后台用Delphi写的同名ISAPI插件进行处理,所以,手机端(前台)Basic4Android类VB形式开发、后台Delphi开发——就可以很轻松编写客户端为手机的三层架

构应用程序了。下面是在下实现的一个小测试程序的Basic4Android代码:

Sub Globals
  Dim b4a As String
  b4a = "http://10.1.74.7/webdemo/getrecorddemo.asq";
End Sub

Sub Activity_Create(FirstTime As Boolean)
  HttpUtils.CallbackActivity = "Main" 'Current activity name.
  HttpUtils.CallbackJobDoneSub = "JobDone"
  HttpUtils.Download("Job1", b4a)
End Sub

Sub JobDone (Job As String)
  Dim s As String
  If HttpUtils.IsSuccess(b4a) Then
    s = HttpUtils.GetString(b4a)
  End If
  Msgbox(s,"Response")
End Sub

    此段代码访问QuickBurro服务器上的ISAPI插件getrecorddemo.dll(对应虚拟页面getrecorddemo.asq),得到结果后以一个MessageBox形式显示出来。下面,

我们来看QuickBurro上的ISAPI插件getrecorddemo.dll的Delphi代码:

//
// GetRecordDemo.pas -- JsonRPC任务处理范例 - 读记录数据(简单起见,不再连接数据库,而是直接给出示例数据)
//          Date: 2011.9.15. Author: Jopher(W.G.Z)
//
library getrecorddemo;

uses
  SysUtils,Classes,Windows,AdoDB,
  {$IFDEF UNICODE}
  AnsiStrings,
  {$ENDIF}
  QBParcel,QBJson,DllSpread;

{$R *.RES}

//
// 主函数...
function MainFunction(RequestParcel: TQBParcel; ResponseParcel: TQBParcel): boolean;
var
   ResponseBody: AnsiString;
   Json: TQBJson;
   JsonArray: TQBJsonArray;
begin
//
// 以ExtJS识别的UTF8格式编码结果数据,放ResponseParcel容器里...
   JsonArray:=TQBJsonArray.create;
   //
   Json:=TQBJson.Create;
   Json.Put('person_name','李先生');
   Json.Put('person_sex','男');
   Json.Put('person_telephone','1234567890');
   JsonArray.put(Json);
   //
   Json:=TQBJson.Create;
   Json.Put('person_name','黄小姐');
   Json.Put('person_sex','女');
   Json.Put('person_telephone','1122334455');
   JsonArray.put(Json);
   //
   Json:=TQBJson.Create;
   Json.Put('person_name','林老弟');
   Json.Put('person_sex','男');
   Json.Put('person_telephone','33776622341');
   JsonArray.put(Json);
//
// 生成总的串...
   ResponseBody:=UTF8Encode(string(JsonArray.ToString));
   ResponseParcel.PutAnsiStringGoods('ResponseBody',ResponseBody);
//
   JsonArray.Free;
   result:=true;
end;

//
// 导出函数,应用程序员不用改动...
function WebpageProcess(InParcelPtr: integer; var OutParcelPtr: integer): boolean; stdcall;
var
   aInParcel: TQBParcel;
   aOutParcel: TQBParcel;
begin
   try
      aInParcel:=TQBParcel(InParcelPtr);
   except
      result:=false;
      exit;
   end;
   aOutParcel:=TQBParcel.Create;
   Result:=MainFunction(aInParcel,aOutParcel);
   if aOutParcel.GoodsCount<=0 then
      OutParcelPtr:=0
   else
      OutParcelPtr:=Parcel2Mem(aOutParcel);
   aOutParcel.free;
end;

exports
   WebpageProcess;

begin
end.

    以上代码直接给出了三个记录数据,您也可以在此先读数据库,再把记录组装成Json格式。

    最后,我们在Basic4Android里编译手机端程序,并分别在模拟机和物理机上运行生成的.apk程序,得到了符合预期的结果。如下图所示:
此帖子包含附件:
JPEG 图像
大小:99.7K
----------------------------------------------
樵夫的大马甲
作者:
男 he_19_79 (he) ▲▲▲△△ -
注册会员
2013/1/28 15:42:59
1楼: 我用Android KSOAP也实现了连接到RO DataAbstract的WebService(XML). 简单高效.在一Nexus 7上运行良好.
----------------------------------------------
-
作者:
男 mochizuki (mochizuki) ▲▲▲▲△ -
注册会员
2013/1/29 10:15:21
2楼: Android 连接datasnap也很方便啊
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2013/1/29 11:30:33
3楼: 确实很简单,小菜一碟而已。并且,QuickBurro具备完善的“软总线”机制,只要根据手机端开发需要写个服务端dll就可,不用build整个服务端,开发就更省事啦。

RO、DataSnap...就不多说啦,说多了会引来好多战斗机的
----------------------------------------------
樵夫的大马甲
作者:
男 liai (风声雨泪) ★☆☆☆☆ -
盒子活跃会员
2013/3/7 11:07:06
4楼: 樵夫很快哦,我现在也在用Basic4android,很爽的,可惜你的例子不多,这样只能抛砖引玉,呵呵。
----------------------------------------------
简单才男人
作者:
男 chinaren007 (erewr) ▲▲▲▲▲ -
普通会员
2013/5/9 19:02:02
5楼: 软文一篇。我用RTC不比你的差.
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2013/5/16 20:15:27
6楼: 不要说硬文软文,本就是抛砖引玉
你们都厉害,俺最没用,好了吧。。。。呵呵
----------------------------------------------
樵夫的大马甲
作者:
男 xingyunze (xingyunze) ▲△△△△ -
注册会员
2018/4/14 0:56:18
7楼: led operating lamp
operating lamp
medical operating lamp
shadowless operating lamp
shadowless operating lights
operating operating lamp
operating surgical lamp

shadowless lamp
operating table
operating bed
medical bed
hospital bed
medical pendant
Electric medical bed
medical led operating lamp
shadowless led operating lamp


operating lamp for sales
operating lamp in china
operating table for sales
operating bed for sales
medical bed for sales
hospital bed for sales
shadowless lamp for sales
shadowless lamp in china

medical pendant for sales
operating table in china
operating bed in china
medical bed in china
hospital bed in china
medical pendant in china
medical equipment in china
medical equipment for sales



手术床
手术台
手术灯
无影灯
手术无影灯
医用手术床
电动手术台
医用手术台
LED手术无影灯
医用手术灯
电动手术床
LED无影灯
医用无影灯

多功能手术台
多功能手术床
LED手术灯
医用手术灯
液压手术台
机械手术台
电动病床
医用吊塔
医用病床
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行39.0625毫秒 RSS