CN1629803A - 在宿主程序界面中嵌入第三方界面的方法 - Google Patents

在宿主程序界面中嵌入第三方界面的方法 Download PDF

Info

Publication number
CN1629803A
CN1629803A CN 200310117431 CN200310117431A CN1629803A CN 1629803 A CN1629803 A CN 1629803A CN 200310117431 CN200310117431 CN 200310117431 CN 200310117431 A CN200310117431 A CN 200310117431A CN 1629803 A CN1629803 A CN 1629803A
Authority
CN
China
Prior art keywords
interface
party
host program
description document
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200310117431
Other languages
English (en)
Other versions
CN1629803B (zh
Inventor
柴银辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN 200310117431 priority Critical patent/CN1629803B/zh
Publication of CN1629803A publication Critical patent/CN1629803A/zh
Application granted granted Critical
Publication of CN1629803B publication Critical patent/CN1629803B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种在宿主程序界面中嵌入第三方界面的方法,该方法为:将描述第三方界面的描述文件传送给宿主程序;宿主程序生成动态界面,并将从第三方接收到的界面描述文本传递给该动态界面;所述动态界面解析描述文件,生成相应的第三方界面并接受用户操作;当用户填写完并确认操作完成后,动态界面把从第三方界面获得的信息生成数据包传递给宿主程序,并关闭所述动态界面;以及由宿主程序将所述数据包透传送给第三方设备。

Description

在宿主程序界面中嵌入第三方界面的方法
技术领域
本发明涉及程序界面互相嵌入和交互技术,尤其涉及一种在宿主程序界面中嵌入第三方界面的方法。
背景技术
在互联网即时通讯工具(QQ)的业务伙伴(S-BUDDY)应用中,由于S-BUDDY服务商数量众多,且行业各不相同,因此S-BUDDY服务商对业务受理界面有很强的个性化定制,导致QQ在技术实现上需要支持嵌入第三方定义的程序界面,实现QQ与S-BUDDY服务商界面的无关性,从而将界面的定制能力交给用户。
目前要在宿主程序(需要嵌入第三方界面的主程序)中实现嵌入第三方界面主要有以下三种方法:
方法一、在宿主程序的源代码中调用由第三方的界面ActiveX控件
第三方将其需要的界面封装为一个独立的ActiveX控件,并将该控件提供给宿主程序,由宿主程序调用该控件。下面以VC6为例说明宿主程序调用ActiveX控件的方法:
1、在宿主程序中,新建一个对话框。
2、执行图1A所示的文件菜单Project->Add to Project->Components andControls。
3、选取第三方提供的控件,参阅图1B。
4、被选中的ActiveX控件插入到对话框中,参阅图1C,图中右部份即为新插入的第三方界面。
5、宿主程序编译执行,显示如图1D所示界面。
该方法存在以下缺点:
1、必须修改宿主程序的源代码才能支持新的界面,虽在技术上可行,但在S-BUDDY中却不具备实际应用价值;
2、第三方界面均需要一个独立的ActiveX控件,系统消耗大,当控件数量很多时管理很复杂;
3、一旦ActiveX控件发布后,该界面就不能再修改,几乎没有用户可定制性;
4、新的ActiveX控件发布后,需要更新所有的宿主程序版本,而S-BUDDY分布在全国各地的个人用户的机器上,统一更新十分困难,且会造成很大的网络和设备压力;
5、ActiveX控件的编写复杂,需要有很强的技术功底,并利用编程工具才能编写,起点高,造成普通用户几乎不可能制作出自己的界面;
6、ActiveX控件封装严密,宿主程序难以接管其所有其消息,因此其操作结果必须由ActiveX控件自身来返回给第三方,但第三方界面很多时,协议接口十分复杂,很容易影响到整个系统的稳定性。
方法二、宿主程序使用第三方界面插件(PlugIn)
第三方将其需要的界面封装为一个独立的插件(PlugIn),并将该控件提供给宿主程序,由宿主程序调用该插件。下面以VC6本身使用插件的例子来说明该方法:
1、宿主程序提供插件接口,所有的插件都必须严格遵守该接口;
2、将所需要的功能封装在独立的插件内,并放置到宿主程序的插件目录下;
3、在VC6中配置该插件:Tools->Customize...,显示如图2A所示配置界面;
4、在界面上选中相应的插件并确认,该插件将立即启用,执行效果如图2B所示。
该方法存在以下缺点:
1、宿主程序需要支持复杂的插件加载、卸载、资源分配以及调用机制;
2、由于插件必须安装在宿主程序本地,当插件数量很多时管理很复杂;
3、一旦插件发布后,该界面就不能再修改,几乎没有用户可定制性;
4、新插件发布后,需要将其同步到所有宿主程序的归属机器上,而S-BUDDY分布在全国各地的个人用户的机器上,统一更新十分困难,且会造成很大的网络和设备压力;
5、插件的编写复杂,需要有很强的技术功底,并利用编程工具才能编写,起点高,造成普通用户几乎不可能制作出自己的界面;
6、插件封装严密,宿主程序难以接管其所有其消息,因此其操作结果必须由插件自身来返回给第三方,但第三方界面很多时,协议接口十分复杂,很容易影响到整个系统的稳定性。
方法三、宿主程序内嵌HTML页面
第三方将其需要的界面写成对应的HTML页面,并发布到宿主程序可以访问的网络(如Internet)上。宿主程序则在自己的界面上内嵌HTML浏览器,宿主程序启动后显示该HTML页面,用户在该HTML页面上填写信息并提交。技术方案如图3A:
1、在宿主程序的界面中插入HTML浏览器控件,见图3B;
2、编写相应代码来控制HTML浏览器控件,使之能够显示指定HTML页面的能力;
3、编译执行宿主程序,如图3C。
该方法存在以下缺点:
1、宿主程序需支持HTML浏览器,在不同的操作系统下实现同一功能无法兼容;
2、如果用户在代理服务器后面还需要支持WEB代理,对宿主程序改动很大;
3、对第三方而言,需要有WEB SERVER,以便向宿主程序提供HTML页面,并接受返回的用户数据。
发明内容
本发明的目的在于提供一种在宿主程序界面中嵌入第三方界面的方法,以解决现有技术中存在定制第三方界面技术要求高,更新和维护困难的缺点。
为解决上述问题,本发明提供以下技术方案:
一种在宿主程序界面中嵌入第三方界面的方法,该方法为:将描述第三方界面的描述文件传送给宿主程序,宿主程序解析该描述文件并生成第三方界面。
根据上述方法:
宿主程序接收到描述文件后先生成相应的动态界面,再将描述文件传送给该动态界面,由动态界面解析描述文件并生成第三方界面。
用户操作完第三方界面后,将从第三方界面获得的信息生成数据包传递给宿主程序并关闭第三方界面,然后由宿主程序将数据包传送给第三方设备。
由第三方通过网络将描述文件传送给宿主程序。
传送描述文件前先进行压缩处理,在解析描述文件时先进行解压缩处理。
宿主程序提供支持所述描述文件的控件能力集,当接收到描述文件时通过执行该能力集来生成动态界面。
由独立的插件提供支持所述描述文件的控件能力集,当宿主程序接收到描述文件时调用该插件来生成动态界面。
对第三方界面的描述中包含对属性和动作的描述。
采用可扩展的标记性语言(XML)、自定义文本文件、二进制文件或资源文件描述第三方界面。
本发明具有以下有益效果:
1、实现了宿主程序和第三方界面的无关性:通过提供XML界面能力集,使得第三方可以在此能力集范围内任意定义自己的专用界面,实现了宿主程序和第三方界面的无关性,完善地解决了S-BUDDY这类业务的界面多样化需求。
2、通过这种嵌入界面的方式给第三方提供了自己定制用户界面并获取用户数据的能力。
3、降低了技术门槛,方便第三方定制:能力集采用简单易懂的文本方式来描述界面,并提供了XML资源编辑工具,即时普通用户也可迅速定制其界面。
4、可维护性好:第三方的界面不需要安装到宿主程序本地,因此不需要本地维护,也不存在管理问题,第三方界面的变动也不需要更新宿主程序。
5、更新方便:第三方更改其界面定义后,不需要同步到宿主程序本地,而是在实时交互中传送给宿主程序,因此更新第三方界面十分方便。
附图说明
图1A、图1B、图1C和图1D为现有技术中实施方法一的界面示意图;
图2A、图2B为现有技术中实现方法二的界面示意图;
图3A、图3B、图3C为现有技术中实现方法三的界面示意图;
图4为本发明中第三方界面在整个方案中的地位示意图;
图5为说明组合框控制的界面示意图;
图6为产生的第三方界面示意图。
具体实施方式
本实施例主要以采用可扩展标记语言(XML)描述第三方界面为例对本发明进行说明。
在本发明中,第三方只需提供描述其界面的XML文本,宿主程序根据其脚本中的界面定义来生成第三方界面,并可将从该界面填写的结果以XML返回给第三方。
参阅图4所示,在即时通讯(IM)中,网络中间件在第三方设备和宿主程序之间进行数据或文件传送。
本发明的处理流程如下:
步骤①:第三方利用XML资源编辑器或者手工编写XML界面文本;
步骤②:第三方设备收到该文本后,传递给网络中间件;
步骤③:网络中间件将XML文本传给宿主程序;
步骤④:宿主程序生成XML对话框(也可为一般的窗口界面),并将XML界面文本传递给该对话框;
步骤⑤:XML对话框根据收到的XML文本产生相关的界面(第三方界面);
步骤⑥:最终用户在该界面上完成资料的填写后,点击“提交”按钮时XML对话框关闭,并将填写结果打包给宿主程序;
步骤⑦:宿主程序通过网络中间件将结果传送给第三方设备。
以下对上述处理流程进行详细说明:
宿主程序提供XML控件能力集,支持静态文本、文本编辑、组合框、列表框、单选按钮群组、GroupBox、单选按钮、复选按钮、线条、图像、进程条等主要控件。
宿主程序支持可动态扩充的控件能力集,上述控件已覆盖了一般程序所常用的绝大部分控件。当现有控件能力集不够用时,还可动态扩充控件能力集,新扩充的控件不影响到原来的第三方已经定义好的界面。
宿主程序提供控件能力集的方式有两种:
A、将控件能力集嵌入到主程序中,但需要升级宿主程序。
B、将控件能力集作为一个独立的插件,宿主程序通过接口调用该插件。当能力集增加新的控件后,升级该插件即可,完全与宿主程序无关。
控件能力集中的每种控件均可支持属性(Property)和动作(Action)。其中:
属性描述了控件某个方面的特性,如标题、位置、文本颜色、背景颜色、是否可见、是否使能等,由于每个控件的特性存在差异,因此其支持的属性也各不相同。
动作描述了控件的某个属性发生变更后,其他控件的属性发生跟随性变化,如用户选中组合框中的某项时,某个编辑控件不能继续让用户填写,此时就可以定义对应的动作使得编辑控件隐藏或者禁止编辑。
参阅图5,以XML FORM中的组合框控件(框1内的控件)为例:
该控件的XML定义为:
<项目选择  类型=“COMBOBOX”坐标=“15,323,135,414”使能=“TRUE”选中项=“无默认项”必填=“TRUE”>
  <选项清单>
   <选项  项名=“第一项”/>
   <选项  项名=“第二项”/>
   <选项  项名=“第三项”/>
</选项清单>
<动作清单>
   <第[1]动作  选中项=“第一项”类型=“等于”控件名=“控制列表”属性名=“选中项”属性值=“第一项”/>
   <第[2]动作  选中项=“第二项”类型=“等于”控件名=“控制列表”属性名=“选中项”属性值=“第二项”/>
   <第[3]动作  选中项=“第三项”类型=“等于”控件名=“控制列表”属性名=“选中项”属性值=“第三项”/>
  </动作清单>
  </项目选择>
上面的定义中,为该组合框定义了如下属性:
(1)控件名称:项目选择;
(2)类型:COMBOBOX;
(3)坐标:15,323,135,414;
(4)使能:TRUE;
(5)选中项:无默认项;
(6)必填:TRUE;
(7)列表项清单:第一项、第二项、第三项。
同时,还为该组合框定义了如下动作(“控制列表”是另外一个列表框控件):
(1)当选中“第一项”时:控制列表也选中包含“第一项”文本的项目;
(2)当选中“第二项”时:控制列表也选中包含“第二项”文本的项目;
(3)当选中“第三项”时:控制列表也选中包含“第三项”文本的项目。
宿主程序能够根据界面XML定义文本来动态生成相关的界面,即实现第三方界面和宿主程序的无关性。如第三方界面定义如下:
<?xml version=′1.0′encoding=′gb2312′?>
<XML表单FORM标题=′用户调查′FORM位置=′221,198,371,398′背景色=′212,208,200′字体大小=′90′>
  <普通按钮  类型=“BUTTON”标题=“退出”坐标=“15,142,135,166”使能=“TRUE”动作=“COMMIT”/>
  <文本编辑  类型=“EDIT”标题=“”坐标=“15,65,135,87”使能=“TRUE”单行=“TRUE”必填=“TRUE”/>
  <姓名  类型=“STATIC”标题=“您的姓名:”坐标=“15,41,135,61”使能=“TRUE”/>
</XML表单>
生成的第三方界面如图6所示,宿主程序在用户填写完该界面后,可将用户的结果透传给第三方,以便第三方实现自己的业务流程。
采用标准的XML文本,在IE中可解析,可支持GB2312中文编码和英文编码。因此,XML控件能力集属性既可支持中文又可支持英文。
由于XML描述的第三方界面为文本方式,可有比较大的压缩率,因此,将XML文本文件压缩后再通过网络传送,这样可大幅度降低网络要求和对相关设备的要求。
本实施例虽然以采用XML描述第三方界面为例,但界面描述采用自定义文本文件、二进制文件或者资源文件(如微软公司Visual C++的.RC文件)来描述界面,也可达到用XML来描述界面相同的效果。

Claims (9)

1、一种在宿主程序界面中嵌入第三方界面的方法,其特征在于该方法为:将描述第三方界面的描述文件传送给宿主程序,宿主程序解析该描述文件并生成第三方界面。
2、如权利要求1所述的方法,其特征在于,宿主程序接收到描述文件后先生成相应的动态界面,再将描述文件传送给该动态界面,由动态界面解析描述文件并生成第三方界面。
3、如权利要求2所述的方法,其特征在于,用户操作完第三方界面后,将从第三方界面获得的信息生成数据包传递给宿主程序并关闭动态界面,然后由宿主程序将数据包传送给第三方设备。
4、如权利要求1所述的方法,其特征在于,由第三方通过网络将描述文件传送给宿主程序。
5、如权利要求1或4所述的方法,其特征在于,传送描述文件前先进行压缩处理,在解析描述文件时先进行解压缩处理。
6、如权利要求1或2所述的方法,其特征在于,宿主程序提供支持所述描述文件的控件能力集,当接收到描述文件时通过执行该能力集来生成动态界面。
7、如权利要求6所述的方法,其特征在于,由独立的插件提供支持所述描述文件的控件能力集,当宿主程序接收到描述文件时调用该插件来生成动态界面。
8、如权利要求1所述的方法,其特征在于,对第三方界面的描述中包含对属性和动作的描述。
9、如权利要求1所述的方法,其特征在于,采用可扩展的标记性语言(XML)、自定义文本文件、二进制文件或资源文件描述第三方界面。
CN 200310117431 2003-12-18 2003-12-18 在宿主程序界面中嵌入第三方界面的方法 Expired - Lifetime CN1629803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310117431 CN1629803B (zh) 2003-12-18 2003-12-18 在宿主程序界面中嵌入第三方界面的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200310117431 CN1629803B (zh) 2003-12-18 2003-12-18 在宿主程序界面中嵌入第三方界面的方法

Publications (2)

Publication Number Publication Date
CN1629803A true CN1629803A (zh) 2005-06-22
CN1629803B CN1629803B (zh) 2011-04-20

Family

ID=34843578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310117431 Expired - Lifetime CN1629803B (zh) 2003-12-18 2003-12-18 在宿主程序界面中嵌入第三方界面的方法

Country Status (1)

Country Link
CN (1) CN1629803B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407141C (zh) * 2005-09-30 2008-07-30 腾讯科技(深圳)有限公司 一种实现软件结合的方法
CN102169435A (zh) * 2011-04-19 2011-08-31 上海网达软件有限公司 一种嵌入式中间件平台字体配置的方法
CN102455914A (zh) * 2011-12-30 2012-05-16 四川长虹电器股份有限公司 一种基于浏览器扩展的跨平台gui快速原型开发方法
CN101573720B (zh) * 2006-12-28 2012-05-30 国际商业机器公司 支持用于业务处理的数据输入的方法和系统
CN103177365A (zh) * 2013-04-15 2013-06-26 姚彦林 一种具有usb接口的智能设备及其安全交易方式
CN103197951A (zh) * 2012-01-04 2013-07-10 腾讯科技(深圳)有限公司 一种搭建应用运行环境的方法及装置
CN101996095B (zh) * 2009-08-26 2014-04-09 阿里巴巴集团控股有限公司 插件接入即时通讯程序的方法和装置
CN103885773A (zh) * 2014-03-17 2014-06-25 可牛网络技术(北京)有限公司 跨页面实现应用程序app功能的方法及装置
CN104598225A (zh) * 2014-12-31 2015-05-06 百度在线网络技术(北京)有限公司 一种将视图信息插入页面中的方法、装置与系统
CN107656762A (zh) * 2017-10-13 2018-02-02 上海酷屏信息技术有限公司 一种在app中实现第三方功能的方法及系统
CN108363574A (zh) * 2018-01-23 2018-08-03 平安普惠企业管理有限公司 基于sdk的前端定制方法、装置、终端设备及存储介质
CN108460064A (zh) * 2017-07-24 2018-08-28 平安科技(深圳)有限公司 基于任务维度的关闭方法、装置、存储介质及终端

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407141C (zh) * 2005-09-30 2008-07-30 腾讯科技(深圳)有限公司 一种实现软件结合的方法
CN101573720B (zh) * 2006-12-28 2012-05-30 国际商业机器公司 支持用于业务处理的数据输入的方法和系统
CN101996095B (zh) * 2009-08-26 2014-04-09 阿里巴巴集团控股有限公司 插件接入即时通讯程序的方法和装置
CN102169435A (zh) * 2011-04-19 2011-08-31 上海网达软件有限公司 一种嵌入式中间件平台字体配置的方法
CN102455914A (zh) * 2011-12-30 2012-05-16 四川长虹电器股份有限公司 一种基于浏览器扩展的跨平台gui快速原型开发方法
US9535668B2 (en) 2012-01-04 2017-01-03 Tencent Technology (Shenzhen) Company Limited Method, device, and storage medium for setting up application runtime environment
CN103197951A (zh) * 2012-01-04 2013-07-10 腾讯科技(深圳)有限公司 一种搭建应用运行环境的方法及装置
WO2013102397A1 (zh) * 2012-01-04 2013-07-11 腾讯科技(深圳)有限公司 搭建应用运行环境的方法、装置及存储介质
CN103177365A (zh) * 2013-04-15 2013-06-26 姚彦林 一种具有usb接口的智能设备及其安全交易方式
CN103885773A (zh) * 2014-03-17 2014-06-25 可牛网络技术(北京)有限公司 跨页面实现应用程序app功能的方法及装置
CN103885773B (zh) * 2014-03-17 2017-03-01 可牛网络技术(北京)有限公司 跨页面实现应用程序app功能的方法及装置
CN104598225A (zh) * 2014-12-31 2015-05-06 百度在线网络技术(北京)有限公司 一种将视图信息插入页面中的方法、装置与系统
CN108460064A (zh) * 2017-07-24 2018-08-28 平安科技(深圳)有限公司 基于任务维度的关闭方法、装置、存储介质及终端
WO2019019632A1 (zh) * 2017-07-24 2019-01-31 平安科技(深圳)有限公司 基于任务维度的关闭方法、装置、存储介质及终端
CN108460064B (zh) * 2017-07-24 2019-10-15 平安科技(深圳)有限公司 基于任务维度的关闭方法、装置、存储介质及终端
CN107656762A (zh) * 2017-10-13 2018-02-02 上海酷屏信息技术有限公司 一种在app中实现第三方功能的方法及系统
CN108363574A (zh) * 2018-01-23 2018-08-03 平安普惠企业管理有限公司 基于sdk的前端定制方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN1629803B (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN100351779C (zh) 利用配置管理器的回滚与安全特性在移动计算设备上安装软件
CN1841362A (zh) 用于处理电子表格的方法和系统
CN101079061A (zh) 一种网页截屏系统及其实现方法
CN1848774A (zh) 一种远程调用通信组件的系统及方法
CN1757216A (zh) 创建基于无线应用程序的组件并与之通信的系统和方法
CN1629803A (zh) 在宿主程序界面中嵌入第三方界面的方法
CN102200976B (zh) 桌面应用转换成网络应用的定制系统和方法
CN1229944A (zh) 用于减少预装类的脚印的系统和方法
CN1133308C (zh) 无线电通信系统以及改变无线电客户机显示语言的方法
CN100428150C (zh) 嵌入web浏览器的图片处理方法
CN1443418A (zh) 用于共享利用数字媒体帧的图像的方法和系统
CN1794230A (zh) 以透明方式公开计算机生成文档中嵌套数据的方法和系统
CN1577263A (zh) 支持多语言的用户界面实现方法及其装置
CN1783090A (zh) 用于对象模型与xml间转换的可共享双向方法和系统
CN1685395A (zh) 用于使用多个应用的系统和方法
CN1922608A (zh) 虚拟文件系统
CN1518304A (zh) 在服务器和用户之间形成数据流的方法
CN101527783A (zh) 一种获取界面数据方法、系统及数字电视接收终端
CN1577323A (zh) 结构化文挡处理器、结构化文挡处理方法和程序
CN105550165A (zh) 可将网页文章导入网页文本编辑器的插件及方法
CN101807204B (zh) 一种遥感图像处理Web服务动态生成方法
CN1479899A (zh) 具有格式改编的对象传输方法
CN101075989A (zh) 一种验证字段有效性的方法和系统
CN1499774A (zh) 动态生成电信网管界面的方法
CN1606007A (zh) 用于客户支持的web浏览器控件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Zhang Hexing

Document name: Notification of Passing Examination on Formalities

C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20110420