CN1629803B - 在宿主程序界面中嵌入第三方界面的方法 - Google Patents
在宿主程序界面中嵌入第三方界面的方法 Download PDFInfo
- Publication number
- CN1629803B CN1629803B CN 200310117431 CN200310117431A CN1629803B CN 1629803 B CN1629803 B CN 1629803B CN 200310117431 CN200310117431 CN 200310117431 CN 200310117431 A CN200310117431 A CN 200310117431A CN 1629803 B CN1629803 B CN 1629803B
- Authority
- CN
- China
- Prior art keywords
- interface
- host program
- control
- party
- description document
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000009471 action Effects 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 230000006837 decompression Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种在宿主程序界面中嵌入第三方界面的方法,该方法为:将描述第三方界面的描述文件传送给宿主程序;宿主程序生成对话框,并将从第三方接收到的界面描述文本传递给该对话框;所述对话框解析描述文件,生成相应的第三方界面并接受用户操作;当用户填写完并确认操作完成后,对话框把从第三方界面获得的信息生成数据包传递给宿主程序,并关闭所述对话框;以及由宿主程序将所述数据包透传送给第三方设备。
Description
技术领域
本发明涉及程序界面互相嵌入和交互技术,尤其涉及一种在宿主程序界面中嵌入第三方界面的方法。
背景技术
在互联网即时通信工具的业务伙伴(S-BUDDY)应用中,由于S-BUDDY服务商数量众多,且行业各不相同,因此S-BUDDY服务商对业务受理界面有很强的个性化定制,导致即时通信工具在技术实现上需要支持嵌入第三方定义的程序界面,实现即时通信工具与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页面,并接受返回的用户数据。
发明内容
本发明的目的在于提供一种在宿主程序界面中嵌入第三方界面的方法,以解决现有技术中存在定制第三方界面技术要求高,更新和维护困难的缺点。
为解决上述问题,本发明提供以下技术方案:
一种在宿主程序界面中嵌入第三方界面的方法,该方法为:
宿主程序通过网络获取描述第三方界面的描述文件,宿主程序接收到描述文件后生成相应的动态界面,再将描述文件传送给该动态界面,由动态界面解析描述文件并生成第三方界面
所述描述第三方界面的描述文件包括属性和动作的描述。
还包括将描述第三方界面的描述文件传送给通过执行宿主程序所生成的对话框的步骤。
所述对话框是通过执行宿主程序的宿主程序控件能力集生成。
所述宿主程序控件能力集可动态扩充,包括静态文本控件、文本编辑控件、组合框控件、列表框控件、单选按钮群组控件、单选按钮控件、复选按钮控件、线条控件、图像控件、进程条控件。
传送描述文件前先进行压缩处理,在解析描述文件时先进行解压缩处理。
所述宿主程序提供支持所述描述文件的控件能力集,当接收到描述文件时通过执行该能力集来生成动态界面。
由独立的插件提供支持所述描述文件的控件能力集,当宿主程序接收到描述文件时调用该插件来生成动态界面。
采用可扩展的标记性语言、自定义文本文件、二进制文件或资源文件描述第三方界面。
本发明具有以下有益效果:
1、实现了宿主程序和第三方界面的无关性:通过提供XML界面能力集,使得第三方可以在此能力集范围内任意定义自己的专用界面,实现了宿主程序和第三方界面的无关性,完善地解决了S-BUDDY这类业务的界面多样化需求。
2、通过这种嵌入界面的方式给第三方提供了自己定制用户界面并获取用户数据的能力。
3、降低了技术门槛,方便第三方定制:能力集采用简单易懂的文本方式来描述界面,并提供了XML资源编辑工具,即时普通用户也可迅速定制其界面。
4、可维护性好:第三方的界面不需要安装到宿主程序本地,因此不需要本地维护,也不存在管理问题,第三方界面的变动也不需要更新宿主程序。
5、更新方便:第三方更改其界面定义后,不需要同步到宿主程序本地,而是在实时交互中传送给宿主程序,因此更新第三方界面十分方便。
附图说明
图1A、图1B、图1C和图1D为现有技术中实施方法一的界面示意图;
图2A、图2B为现有技术中实现方法二的界面示意图;
图3A、图3B、图3C为现有技术中实现方法三的界面示意图;
图4为本发明中第三方界面在整个方案中的地位示意图;
图5为说明组合框控制的界面示意图;
图6为产生的第三方界面示意图。
具体实施方式
本实施例主要以采用可扩展标记语言(XML)描述第三方界面为例对本发明进行说明。
在本发明中,第三方只需提供描述其界面的描述文件,宿主程序根据其描述文件中的界面定义来生成第三方界面,并可将从该界面填写的结果以XML返回给第三方。
参阅图4所示,在即时通讯(IM)中,网络中间件在第三方设备和宿主程序之间进行数据或文件传送。
本发明的处理流程如下:
步骤①:第三方利用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描述第三方界面为例,但界面描述采用自定义文本文件、二进制文件或者资源文件来描述界面,也可达到用XML来描述界面相同的效果。
Claims (9)
1.一种在宿主程序界面中嵌入第三方界面的方法,其特征在于,包括:
宿主程序通过网络获取描述第三方界面的描述文件,宿主程序接收到描述文件后生成相应的动态界面,再将描述文件传送给该动态界面,由动态界面解析描述文件并生成第三方界面。
2.如权利要求1所述的方法,其特征在于,所述描述第三方界面的描述文件包括属性和动作的描述。
3.如权利要求1或2所述的方法,其特征在于,还包括将描述第三方界面的描述文件传送给通过执行宿主程序所生成的对话框的步骤。
4.如权利要求3所述的方法,其特征在于,所述对话框是通过执行宿主程序的宿主程序控件能力集生成。
5.如权利要求4所述的方法,其特征在于,所述宿主程序控件能力集可动态扩充,包括静态文本控件、文本编辑控件、组合框控件、列表框控件、单选按钮群组控件、单选按钮控件、复选按钮控件、线条控件、图像控件、进程条控件。
6.如权利要求1所述的方法,其特征在于,传送描述文件前先进行压缩处理,在解析描述文件时先进行解压缩处理。
7.如权利要求1所述的方法,其特征在于,所述宿主程序提供支持所述描述文件的控件能力集,当接收到描述文件时通过执行该能力集来生成动态界面。
8.如权利要求7所述的方法,其特征在于,由独立的插件提供支持所述描述文件的控件能力集,当宿主程序接收到描述文件时调用该插件来生成动态界面。
9.如权利要求1所述的方法,其特征在于,采用可扩展的标记性语言、自定义文本文件、二进制文件或资源文件描述第三方界面。
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 CN1629803A (zh) | 2005-06-22 |
CN1629803B true 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) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407141C (zh) * | 2005-09-30 | 2008-07-30 | 腾讯科技(深圳)有限公司 | 一种实现软件结合的方法 |
KR101104008B1 (ko) * | 2006-12-28 | 2012-01-06 | 인터내셔널 비지네스 머신즈 코포레이션 | 업무 처리를 위한 데이터 입력을 지원하기 위한 방법 및 프로그램 |
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快速原型开发方法 |
CN103197951B (zh) | 2012-01-04 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 一种搭建应用运行环境的方法及装置 |
CN103177365A (zh) * | 2013-04-15 | 2013-06-26 | 姚彦林 | 一种具有usb接口的智能设备及其安全交易方式 |
CN103885773B (zh) * | 2014-03-17 | 2017-03-01 | 可牛网络技术(北京)有限公司 | 跨页面实现应用程序app功能的方法及装置 |
CN104598225A (zh) * | 2014-12-31 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 一种将视图信息插入页面中的方法、装置与系统 |
CN108460064B (zh) * | 2017-07-24 | 2019-10-15 | 平安科技(深圳)有限公司 | 基于任务维度的关闭方法、装置、存储介质及终端 |
CN107656762A (zh) * | 2017-10-13 | 2018-02-02 | 上海酷屏信息技术有限公司 | 一种在app中实现第三方功能的方法及系统 |
CN108363574B (zh) * | 2018-01-23 | 2021-07-16 | 平安普惠企业管理有限公司 | 基于sdk的前端定制方法、装置、终端设备及存储介质 |
-
2003
- 2003-12-18 CN CN 200310117431 patent/CN1629803B/zh not_active Expired - Lifetime
Non-Patent Citations (4)
Title |
---|
侯迎春.对于ActiveX Scripting 的调试及实现.商丘师范学院学报第19卷 第5期.2003,19(5),66-69. |
侯迎春.对于ActiveX Scripting 的调试及实现.商丘师范学院学报第19卷 第5期.2003,19(5),66-69. * |
金欢,阮冠春,徐凌宇,赵海.基于嵌入式Internet技术的Webit体系结构研究与实现.控制与决策第17卷 第5期.2002,17(5),541-544、549. |
金欢,阮冠春,徐凌宇,赵海.基于嵌入式Internet技术的Webit体系结构研究与实现.控制与决策第17卷 第5期.2002,17(5),541-544、549. * |
Also Published As
Publication number | Publication date |
---|---|
CN1629803A (zh) | 2005-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636139B (zh) | 一种可视化跨平台移动应用开发与生成系统 | |
CN101192216B (zh) | 静态页面控件与web服务器互动的实现方法及web服务器 | |
CN110889270B (zh) | 一种表单页面文档生成方法、表单页面渲染方法及装置 | |
CN101615179B (zh) | 用于Web应用的跨域交互的方法和系统 | |
CA2305462C (en) | Method of object oriented point-to-point communication and communication apparatus for carrying out such a method | |
CN1629803B (zh) | 在宿主程序界面中嵌入第三方界面的方法 | |
CN103955364B (zh) | 一种适用于手机的前端组件方法 | |
CN101356494B (zh) | 对主题进行换肤的系统和方法 | |
EP2652630B1 (en) | Providing a customized application to a user terminal | |
CN102129364B (zh) | 应用程序中嵌入微件工具栏的方法和快速访问微件的方法 | |
US20010047394A1 (en) | System, method, and computer program product for executing scripts on mobile devices | |
CN101889457B (zh) | 为电子通信设备处理电子消息内容的多个和多部分消息方法及系统 | |
CN101527783A (zh) | 一种获取界面数据方法、系统及数字电视接收终端 | |
CN101132413B (zh) | 基于Web应用的ActiveX组件的复用方法 | |
EP1947575A1 (en) | Computer system | |
CN101860734B (zh) | 一种ajax实现动态图像增量传输与显示的方法 | |
KR20100088049A (ko) | 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치 | |
CN101334872B (zh) | 基于Web服务的电子公文交换方法 | |
CN101702641A (zh) | 编码方法和网络服务器 | |
US20080208964A1 (en) | Client-Server Information System and Method for Providing Graphical User Interface | |
WO2016005884A2 (en) | Javascript-based, client-side template driver system | |
CN103034696A (zh) | 数据查看器管理 | |
CN116719523A (zh) | 页面渲染方法及电子设备 | |
KR20100040545A (ko) | 구조화된 리치 미디어 데이터 기반의 사용자 인터페이스를 제공하기 위한 장치 및 방법 | |
US9558512B2 (en) | Providing a customized application to a user terminal |
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 |