WES7环境中不同WEB窗口页面间的通信方法.pdf

上传人:1*** 文档编号:1569374 上传时间:2018-06-25 格式:PDF 页数:7 大小:463.84KB
返回 下载 相关 举报
摘要
申请专利号:

CN201210538691.1

申请日:

2012.12.13

公开号:

CN103064747A

公开日:

2013.04.24

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/54申请公布日:20130424|||实质审查的生效IPC(主分类):G06F 9/54申请日:20121213|||公开

IPC分类号:

G06F9/54

主分类号:

G06F9/54

申请人:

郑州威科姆科技股份有限公司

发明人:

贾小波; 张永强; 赵付强; 连毅; 徐圆圆; 刘飞

地址:

450001 河南省郑州市高新技术产业开发区莲花街5号

优先权:

专利代理机构:

郑州大通专利商标代理有限公司 41111

代理人:

白毅明

PDF下载: PDF下载
内容摘要

一种WES7环境中不同WEB窗口页面间的通信方法,采用ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能,1)WEB窗口加载通信页面时,各页面同时加载ActiveX插件;2)页面1将页面2的标识及要发送的数据通过ActiveX插件开放的发送数据接口传递给页面1中的ActiveX插件,ActiveX插件通过查找页面与ActiveX插件通信窗口句柄映射表,找到页面2对应的ActiveX插件通信窗口句柄,然后以消息通知的方式将页面1要发送数据的位置告诉页面2的AcitveX插件;3)页面2的ActiveX插件收到消息后,根据消息中传递的数据位置提取数据,然后调用自身的事件通知接口,将数据上报给页面2的事件处理程序;4)页面2至页面1的反向通信过程按照同样的步骤进行。

权利要求书

权利要求书一种WES7环境中不同WEB窗口页面间的通信方法,采用ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能,为WEB页面间数据通信提供支撑,其特征是:
1)WEB窗口加载通信页面时,各页面同时加载ActiveX插件,并告诉ActiveX插件该加载通信页面对应的标识;
2)页面1将页面2的标识及要发送的数据通过ActiveX插件开放的发送数据接口传递给页面1中的ActiveX插件,ActiveX插件通过查找页面与ActiveX插件通信窗口句柄映射表,找到页面2对应的ActiveX插件通信窗口句柄,然后以消息通知的方式将页面1要发送数据的位置告诉页面2的AcitveX插件;
3)页面2的ActiveX插件收到消息后,根据消息中传递的数据位置提取数据,然后调用自身的事件通知接口,将数据上报给页面2的事件处理程序,页面2上的事件处理程序完成数据处理;
4)页面2至页面1的反向通信过程按照同样的步骤进行;这样,就完成了两个不同WEB窗口页面间的数据通信过程。
根据权利要求1所述的WES7环境中不同WEB窗口页面间的通信方法,其特征是:各ActiveX插件进程实例读写的同一块内存中记录了所有被加载的ActiveX插件的通信窗口句柄及其分别对应的页面标识,即该块内存中保存了页面与ActiveX插件通信窗口句柄映射表。
根据权利要求2所述的WES7环境中不同WEB窗口页面间的通信方法,其特征是:当页面被销毁时,插件同时被销毁,销毁前会从内存中删除本插件的页面标识与ActiveX插件通信窗口句柄映射表。
根据权利要求1、2或3所述的WES7环境中不同WEB窗口页面间的通信方法,其特征是:多个WEB窗口之间的互相通信,按照前述两个不同WEB窗口页面间的数据通信过程进行。

说明书

说明书WES7环境中不同WEB窗口页面间的通信方法
技术领域
本发明涉及一种WES7操作系统中的通讯方法,特别是涉及一种WES7环境中不同WEB窗口页面间的通信方法。
背景技术
在Windows Embed Standard 7(简称WES7)操作系统环境中,位于不同WEB窗口的页面之间如何有效通信,到目前为止,一直没有现成的技术方案可用。因为终端设备中的浏览器不受WEB业务开发商的控制,所以通常情况下,WEB业务开发商都是基于单WEB窗口进行WEB业务和应用的设计和开发,这在一般情况下可以满足业务需求,但并不总能满足业务需求。例如“在页面内嵌非FlashPlayer类型播放器视频窗口上放置频道列表界面”这样的需求,就是单WEB窗口方式无法解决的,这是因为目前没有WEB理论和相关技术支持普通WEB元素可以覆盖在页面插件内建的窗口之上。这时若采用两个WEB窗口,一个作为播放页面窗口,另一个作为频道列表窗口并控制好窗口尺寸和显示层次关系,就可以很好的解决显示覆盖问题。而这种方案下需要解决的关键问题就是WEB窗口之间如何进行数据通信以实现WEB页面之间的统一调度。目前,尚未发现可用于解决多窗口WEB页面之间通信的技术和成功案例,无法有效的解决这一问题。
发明内容
本发明针对现有技术不足,提出一种WES7环境中不同WEB窗口页面间的通信方法,可以实现两个独立的浏览器窗口页面之间的双向通讯和控制,从而突破了页面数据通讯和控制能力只能局限在浏览器窗口内的限制。
本发明所采用的技术方案:
一种WES7环境中不同WEB窗口页面间的通信方法,采用ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能,为WEB页面间数据通信提供支撑:
1)WEB窗口加载通信页面时,各页面同时加载ActiveX插件,并告诉ActiveX插件该加载通信页面对应的标识;
2)页面1将页面2的标识及要发送的数据通过ActiveX插件开放的发送数据接口传递给页面1中的ActiveX插件,ActiveX插件通过查找页面与ActiveX插件通信窗口句柄映射表,找到页面2对应的ActiveX插件通信窗口句柄,然后以消息通知的方式将页面1要发送数据的位置告诉页面2的AcitveX插件;
3)页面2的ActiveX插件收到消息后,根据消息中传递的数据位置提取数据,然后调用自身的事件通知接口,将数据上报给页面2的事件处理程序(通常是Javascript事件处理函数),页面2上的事件处理程序完成数据处理;
4)页面2至页面1的反向通信过程按照同样的步骤进行;这样,就完成了两个不同WEB窗口页面间的数据通信过程。
所述的WES7环境中不同WEB窗口页面间的通信方法,各ActiveX插件进程实例读写的同一块内存中记录了所有被加载的ActiveX插件的通信窗口句柄及其分别对应的页面标识,即该块内存中保存了页面与ActiveX插件通信窗口句柄映射表。
所述的WES7环境中不同WEB窗口页面间的通信方法,当页面被销毁时,插件同时被销毁,销毁前会从内存中删除本插件的页面标识与ActiveX插件通信窗口句柄映射表。
所述的WES7环境中不同WEB窗口页面间的通信方法,多个WEB窗口之间的互相通信,按照前述两个不同WEB窗口页面间的数据通信过程进行。
本发明为使用IE浏览器控件编写的WEB业务客户端软件提供了多WEB窗口页面间通信的解决方案,本方案中所述WEB窗口是指内嵌IE浏览器控件的窗口。
本发明的有益积极效果:
1、本发明WES7环境中不同WEB窗口页面间的通信方法,解决了WES7环境中位于不同WEB窗口内的页面间无法通信的问题。为使用IE浏览器控件编写的WEB业务客户端软件提供了多WEB窗口页面间通信的解决方案,可以实现两个独立的浏览器窗口页面之间的双向通讯和控制,从而突破了页面数据通讯和控制能力只能局限在浏览器窗口内的限制。通过满足WEB窗口间通信需求,增强了WEB页面能力,丰富了WEB业务体验。
2、本发明WES7环境中不同WEB窗口页面间的通信方法,由于采用数据到来事件触发机制,接收数据页面只需绑定一个事件处理函数即可在有数据到来时及时处理数据,而无需循环或定时检测和等待可能到来的数据。性能好,处理数据及时。
3、采用本发明WES7环境中不同WEB窗口页面间的通信方法,扩展性好。不仅可以实现两个页面间的通信,也可以实现多个页面间通信,多页间通信无混乱。
附图说明
图1:本发明WES7环境中不同WEB窗口页面间通信流程示意图;
图2:本发明WES7环境中不同WEB窗口页面间通信方法页面关闭时插件销毁流程。
具体实施方式
实施例一:参见图1、图2,本发明WES7环境中不同WEB窗口页面间的通信方法,采用ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能,为WEB页面间数据通信提供支撑:
1)WEB窗口加载通信页面时,各页面同时加载ActiveX插件,并告诉ActiveX插件该加载通信页面对应的标识;
2)页面1将页面2的标识及要发送的数据通过ActiveX插件开放的发送数据接口传递给页面1中的ActiveX插件,ActiveX插件通过查找页面与ActiveX插件通信窗口句柄映射表,找到页面2对应的ActiveX插件通信窗口句柄,然后以消息通知的方式将页面1要发送数据的位置告诉页面2的AcitveX插件;
3)页面2的ActiveX插件收到消息后,根据消息中传递的数据位置提取数据,然后调用自身的事件通知接口,将数据上报给页面2的事件处理程序(通常是Javascript事件处理函数),页面2上的事件处理程序完成数据处理;
4)页面2至页面1的反向通信过程按照同样的步骤进行;这样,就完成了两个不同WEB窗口页面间的数据通信过程。
实施例二:参见图1、图2,本发明WES7环境中不同WEB窗口页面间的通信方法,与实施例一稍有不同的是,各ActiveX插件进程实例读写的同一块内存中记录了所有被加载的ActiveX插件的通信窗口句柄及其分别对应的页面标识,即该块内存中保存了页面与ActiveX插件通信窗口句柄映射表。当页面被销毁时,插件同时被销毁,销毁前会从内存中删除本插件的页面标识与ActiveX插件通信窗口句柄映射表。
实施例三:参见图1、图2,本发明WES7环境中不同WEB窗口页面间的通信方法,与实施例一或实施例二稍有不同的是,对于多个WEB窗口之间的互相通信,按照前述两个不同WEB窗口页面间的数据通信过程进行。
本发明采用的技术原理是基于微软提供的IE浏览器控件和ActiveX插件技术。
微软提供了IE浏览器控件(控件名称:WebBrowser)供应用开发人员开发自己的WEB业务客户端软件,这样WEB客户端软件中的WEB窗口就相当于一个一个的IE浏览器。
微软提供的ActiveX插件可以像普通程序一样自由访问和控制操作操作系统本地资源,利用了该技术编写的ActiveX插件可被IE浏览器中的页面在需要时加载进IE浏览器进程中供页面调用,从而扩展页面能力。基于上述技术原理,本专利采用编写专门ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能。
Windows ActiveX插件实现原理及其内部机制说明:
1.Windows ActiveX插件提供了容器调用插件功能和插件回调容器功能的编程技术。利用该技术,插件可以将其功能通过开放API接口方式提供给外部容器窗口使用,容器窗口调用插件API并传递相关参数使用插件功能;插件也可以通过开放事件接口,由容器将插件事件与容器中负责处理该事件的事件处理函数进行绑定,从而实现插件回调外部容器函数的目的(反过来说,就是容器可以响应并处理插件中产生的事件)。事件可将插件内部数据作为事件参数传递给容器的事件处理函数。
2. Windows ActiveX插件一旦在系统中注册后,各容器程序均可以通过该插件的CLSID标识,加载和实例化插件。不同进程的多个插件实例其内存空间相互隔离,不能互相访问。同一进程的多个插件实例处于同一进程内存空间,但WINDOWS并没有提供AcitveX插件间直接访问其内部数据的技术。
3.在页面中使用activeX插件的场景下,页面就是ActiveX插件的容器。
本专利插件功能及关键技术原理:
功能:单个进程的多个IE窗口页面间通信;
基本接口:插件需向页面开放的基本的API接口:
setName(name):告诉插件实例其所在页面名称,并记录到映射表中;
sendData(name,data):页面之间通信接口。页面通过调用该接口,告诉插件,要通信的页面名称及数据;
newDataMsg(data):新数据到来消息,用于页面接收数据使用。页面可将该接口按照普通JS事件绑定方式绑定javascript的数据处理函数。
关键技术:
本专利插件采用VC+MFC进行实现,并使用VC的ActiveX开发向导进行开发,故下面涉及代码的地方均使用VC+MFC进行描述。
1.    插件实例之间如何共享插件通信用到的窗口句柄与插件名称映射表(以下简称映射表)?
实现原理:利用C++语言静态变量具有在进程空间中全局有效的存储特征,我们使用在插件中使用静态变量来保存映射表,我们称之为静态映射表变量,定义语句为:staticCMapStringToOb s_mapNameToHwnd;。这样,各插件实例访问的就是同一块映射表内存空间了。
2.    插件实例之间如何标识自己和找到对方?
实现原理:s_mapNameToHwnd中记录了每个插件实例通信窗口的句柄与插件名称的映射关系,插件通信窗口句柄就是插件实例的标识,插件通过向该窗口句柄发送和接收消息来实现插件实例间的通信。通过插件给页面开放API接口setName的方式,让页面通过调用setName来告诉插件实例其所在页面名称,插件内部将该名称及插件实例内部通信窗口句柄保存到上述静态映射表变量s_mapNameToHwnd中。当sendData接口被调用时,插件实例会根据接口中传递的name参数遍历映射表s_mapNameToHwnd,找到name对应的窗口句柄后,就可以向该窗口发送WM_SEND_NEW_DATA消息了。当页面窗口被关闭时,插件实例的析构函数会从静态映射表变量s_mapNameToHwnd中删除本插件实例的标识。
3.    插件实例之间发送和接收数据的实现原理:
由于多个插件实例处于同一个进程内存空间,因此,当一个插件实例(简称:实例1)发送数据给另一个插件实例(简称:实例2)时,实例1只需将自身存储待发送数据的内存区的起始地址和数据长度(单位:字节)作为自定义WINDOWS消息(本插件实例采用的自定义消息:#define WM_SEND_NEW_DATA WM_USER+10)的参数发给实例2的通信窗口即可。由于WINDOWS消息允许携带两个整型参数,因此,可将发送数据存储区起始地址作为第一个参数,将发送数据长度作为第二个参数。
插件内部定义了通信窗口对应的WM_SEND_NEW_DATA消息的处理函数。当实例2通信窗口收到实例1发来的WM_SEND_NEW_DATA消息后,根据其中携带的数据存储区起始地址和数据长度将数据提取出来,然后通过WINDOWS ActiveX标准上报机制将数据上报给实例2所在页面即可。

WES7环境中不同WEB窗口页面间的通信方法.pdf_第1页
第1页 / 共7页
WES7环境中不同WEB窗口页面间的通信方法.pdf_第2页
第2页 / 共7页
WES7环境中不同WEB窗口页面间的通信方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《WES7环境中不同WEB窗口页面间的通信方法.pdf》由会员分享,可在线阅读,更多相关《WES7环境中不同WEB窗口页面间的通信方法.pdf(7页珍藏版)》请在专利查询网上搜索。

一种WES7环境中不同WEB窗口页面间的通信方法,采用ActiveX插件作为WEB窗口页面间通信中介实现页面通信功能,1)WEB窗口加载通信页面时,各页面同时加载ActiveX插件;2)页面1将页面2的标识及要发送的数据通过ActiveX插件开放的发送数据接口传递给页面1中的ActiveX插件,ActiveX插件通过查找页面与ActiveX插件通信窗口句柄映射表,找到页面2对应的ActiveX插件。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1