一种使用Ocx扩展webkit内核应用的方法技术

技术编号:22218187 阅读:69 留言:0更新日期:2019-09-30 00:55
一种使用Ocx扩展 webkit内核应用的方法,包括建立至少一个Ocx组件;建立宿主程序,所述宿主程序为通过接口与webkit内核、Ocx组件进行信息交互的组件框架;所述宿主程序包括Ocx代理类体系和JS对象代理体系,所述Ocx代理类体系包括至少一个Ocx代理类,每个Ocx代理类对应连接一个Ocx组件,每个Ocx代理类对应所述JS对象体系中的一个js对象;在webkit内核中添加宿主程序;宿主程序在webkit内核中添加JS对象代理体系中的一个js对象;页面通过该js对象向宿主程序发送调用请求;宿主程序接收到调用请求后,将调用请求发送给js对象对应的Ocx代理类,通过Ocx代理类发送给对应的Ocx组件执行相应功能;Ocx组件执行相应功能后将执行结果返回给宿主程序,宿主程序将执行结果返回给页面。

A Method of Extending Webkit Kernel Application with Ocx

【技术实现步骤摘要】
一种使用Ocx扩展webkit内核应用的方法
本专利技术涉及一种浏览器应用扩展技术,特别是涉及webkit内核的应用。
技术介绍
OCX:ObjectLinkingandEmbeddingControlExtension它是微软在组件和OLE技术的基础上制定的一种软件框架。在Windows桌面应用和针对IE浏览器开发的Web应用中得到广泛的使用。在IE浏览器中,页面可以直接调用Ocx中方法,以及设置Ocx中的事件回调。Webkit内核是一种开源的浏览器引擎,苹果公司的Safari浏览器和Chrome浏览器等都都是在webkit内核的基础上开发而来。相比于IE浏览器使用Trident内核而言,webkit支持的HTML标准更多,运行效率更高,更受用户的喜爱。WebKit内核应用指的是在WebKit内核的基础上二次开发出来的应用程序。所有具有Web浏览功能的应用都属于WebKit内核应用。在Windows系统上进行集成浏览器应用的开发时,旧的解决方案是直接使用系统支持的Trident内核控件,然后开发供页面使用Ocx插件进行功能扩展。然而,在从集成了Trident内核的浏览器应用向集成webkit内核的浏览器应用转换时,是无法直接使用原有的ocx扩展组件的。因为在webkit内核中不支持html使用ocx扩展。在火狐浏览器中原生支持NPAPI插件扩展技术,通过NPAPI插件规范就可以对浏览器的功能进行扩展。
技术实现思路
本专利技术提供一种直接加载ocx组件,然后供WebKit的html页面直接使用,以便对WebKit内核进行扩展的方法。本专利技术采用以下技术方案:一种使用Ocx扩展webkit内核应用的方法,包括:建立至少一个Ocx组件;建立宿主程序,所述宿主程序为通过接口与webkit内核、Ocx组件进行信息交互的组件框架;所述宿主程序包括Ocx代理类体系和JS对象代理体系,所述Ocx代理类体系包括至少一个Ocx代理类,每个Ocx代理类对应连接一个Ocx组件,每个Ocx代理类对应所述JS对象体系中的一个js对象;在webkit内核中添加宿主程序;宿主程序在webkit内核中添加JS对象代理体系中的一个js对象;页面通过该js对象向宿主程序发送调用请求;宿主程序接收到调用请求后,将调用请求发送给js对象对应的Ocx代理类,通过Ocx代理类发送给对应的Ocx组件执行相应功能;Ocx组件执行相应功能后将执行结果返回给宿主程序,宿主程序将执行结果返回给页面。Ocx代理类体系中每个Ocx代理类都继承自同一个基类。所述宿主程序在webkit内核中添加JS对象代理体系中的一个js对象后,通过页面js对象调用Ocx组件的方法包括;程序初始化时,通过webkit内核与宿主程序的接口向webkit内核中添加内置js对象,,页面能够直接使用该js对象的功能;页面通过该js对象向宿主程序发送调用请求,Ocx代理类体系中的Ocx代理类收到调用请求后调用Ocx组件执行对应的扩展功能;Ocx组件执行扩展功能的结果传递给上层的页面。所述Ocx组件执行对应的扩展功能后,Ocx组件执行扩展功能的结果传递给上层的页面,或者在Ocx组件处理中响应页面Js对象的事件回调;所述在Ocx组件处理中响应页面Js对象的事件回调包括:宿主程序提供一个注册方法并注册至webkit内核;在页面调用注册方法注册时,对页面的方法保存起来在事件发生时调用对应的回调函数;Ocx组件中的事件触发时,先调用宿主程序提供的事件响应函数,在宿主程序的事件响应函数中触发页面设置的事件回调。存储介质,所述存储介质内部可执行的计算机程序,所述计算机程序被处理器执行时实现上述的方法。本专利技术的有益效果:本专利技术提供一种框架,可以通过该框架加载ocx,然后供html页面直接使用。附图说明图1为本专利技术的信息流向图。图2为本专利技术的框架结构图。图3为页面Js调用Ocx扩展的流程图。图4为Ocx中触发页面Js事件回调方法的流程图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细说明。在现有的火狐浏览器中原生支持NPAPI插件扩展技术,通过NPAPI插件规范就可以对浏览器的功能进行扩展。但是本专利技术提出区别于NPAPI、PPAPI(谷歌接口规范)的另外一种webkit内核浏览器应用扩展技术规范,按照此方法添加包括Ocx插件、扩展js对象等模块即可进行功能扩展。本专利技术提供一种使用Ocx扩展webkit内核应用的方法,该方法在集成webkit内核浏览器应用的程序中,通过宿主程序,实现在页面内调用Ocx组件。其中,宿主程序作为承载Webkit内核和Ocx组件的载体,负责处理页面上的js调用和调用Ocx组件中的接口,以及实现消息的同步处理,从而实现通过Ocx组件扩展webkit内核应用的目的。为了增强此方法的易用性,本方法通过一种Ocx组件代理框架来对Ocx组件进行管理,以便进行功能的扩展操作。具体来说,本专利技术包括以下步骤:(1)建立至少一个Ocx组件;(2)建立宿主程序;(3)在webkit内核中添加宿主程序;(4)宿主程序在webkit内核中添加JS对象代理体系中的一个js对象;(5)页面通过该js对象向宿主程序发送调用请求;(6)宿主程序接收到调用请求后,将调用请求发送给js对象对应的Ocx代理类,通过Ocx代理类发送给对应的Ocx组件执行相应功能;(7)Ocx组件执行相应功能后将执行结果返回给宿主程序,宿主程序将执行结果返回给页面。上述的(2)中,宿主程序为通过接口与webkit内核、Ocx组件进行信息交互的组件框架;所述宿主程序包括Ocx代理类体系和JS对象代理体系,所述Ocx代理类体系包括至少一个Ocx代理类,每个Ocx代理类对应连接一个Ocx组件,每个Ocx代理类对应所述JS对象体系中的一个js对象;所述Ocx代理类体系的Ocx代理类和JS对象代理体系中的Js对象均包括接口,如图1所示,Ocx代理类体系中的Ocx代理类为一种Ocx代理程序,与Ocx组件的接口进行信息交互和数据返回;而JS对象代理体系中的js对象,包括Js接口程序,能够扩展浏览器内湖对象,接收Js对象的调用。宿主程序采用Win32或MFC开发,作为连接WebKit内核和Ocx插件的桥梁。通过宿主程序的中转,WebKit内核中的HTML页面就可以和Ocx插件建立起连接。Ocx插件从根本上来看是通过宿主程序进行管理的,也只会与宿主程序进行交互。宿主程序中通过WebKit内核提供的接口添加两类对象:其一是供页面调用的内置JS对象,内置JS对象与OCX插件一一对应;其二是注册函数,此函数供页面使用,页面可以把自己的函数注册到宿主程序中,供宿主程序使用。上述的(6)中,宿主进程在接收到页面Js对象的调用请求后,先判断该Js对象的调用请求是否是对Ocx组件接口的调用,如果是对Ocx组件接口的调用,就把调用请求发送给Ocx组件的代理模块-即Ocx代理类,并等待Ocx代理类的返回结果。如果不是对组件接口的调用,则直接进行处理后返回。如图1~4为本专利技术的具体实施方式示例图。如图1所示的信息流中,本专利技术使用宿主程序作为连接webkit内核和Ocx组件的桥梁,即接收两端发出的请求,同时也可以在Ocx组件和Webkit内核进行响应。同时使用o本文档来自技高网...

【技术保护点】
1.一种使用Ocx扩展 webkit内核应用的方法,其特征在于,包括:建立至少一个Ocx组件;建立宿主程序,所述宿主程序为通过接口与webkit内核、Ocx组件进行信息交互的组件框架;所述宿主程序包括Ocx代理类体系和JS对象代理体系,所述Ocx代理类体系包括至少一个Ocx代理类,每个Ocx代理类对应连接一个Ocx组件,每个Ocx代理类对应所述JS对象体系中的一个js对象;在webkit内核中添加宿主程序;宿主程序在webkit内核中添加JS对象代理体系中的一个js对象;页面通过该js对象向宿主程序发送调用请求;宿主程序接收到调用请求后,将调用请求发送给js对象对应的Ocx代理类,通过Ocx代理类发送给对应的Ocx组件执行相应功能;Ocx组件执行相应功能后将执行结果返回给宿主程序,宿主程序将执行结果返回给页面。

【技术特征摘要】
1.一种使用Ocx扩展webkit内核应用的方法,其特征在于,包括:建立至少一个Ocx组件;建立宿主程序,所述宿主程序为通过接口与webkit内核、Ocx组件进行信息交互的组件框架;所述宿主程序包括Ocx代理类体系和JS对象代理体系,所述Ocx代理类体系包括至少一个Ocx代理类,每个Ocx代理类对应连接一个Ocx组件,每个Ocx代理类对应所述JS对象体系中的一个js对象;在webkit内核中添加宿主程序;宿主程序在webkit内核中添加JS对象代理体系中的一个js对象;页面通过该js对象向宿主程序发送调用请求;宿主程序接收到调用请求后,将调用请求发送给js对象对应的Ocx代理类,通过Ocx代理类发送给对应的Ocx组件执行相应功能;Ocx组件执行相应功能后将执行结果返回给宿主程序,宿主程序将执行结果返回给页面。2.根据权利要求1所述的一种使用Ocx扩展webkit内核应用的方法,其特征在于:Ocx代理类体系中每个Ocx代理类都继承自同一个基类。3.根据权利要求1所述的一种使用Ocx扩展webkit内核应用的方法,其特征在于:所述宿主程序在webkit内核中添加JS对象代...

【专利技术属性】
技术研发人员:贾小波姜耀铠刘林松
申请(专利权)人:郑州威科姆科技股份有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1