一种基于http的web插件调用方法及系统与流程

文档序号:12463755阅读:924来源:国知局
一种基于http的web插件调用方法及系统与流程

本发明涉及一种插件调用方法,尤其涉及一种基于http的web插件调用方法及系统。



背景技术:

目前的浏览器插件技术,分别为了基于微软的ActiveX插件技术,基于Mozilla的NPAPI插件技术以及基于Google的PPAPI插件技术。对于ActiveX插件技术,目前只有在IE11及以下的浏览器中支持;对于NPAPI技术,Mozilla官方已经宣布,Firefox浏览器将在2016年底彻底放弃对NPAPI类插件的支持;而对于NPAPI技术在主流的Chrome浏览器上,Chrome在45版本以上的浏览器上已经不再支持。所以,目前来说,没有一种插件技术能够同时满足在多种浏览器中的使用。并且对于不同的浏览器,由于实现技术不同,对插件的权限要求也有所不同,导致应用系统在调用插件的时候,出现调用失败,页面卡死等情况。再者,若要实现多种浏览器的插件兼容问题,需要开发和维护三种不同技术版本的插件代码,在代码的维护上,也存在着重复工作的问题,无形之中增加了bug出现的概率。



技术实现要素:

本发明实施例所要解决的技术问题在于,针对现有的浏览器插件不兼容的问题,提出了一种基于http的web插件调用方法。

为了解决上述技术问题,本发明实施例提供了一种基于http的web插件调用方法,该基于http的web插件调用方法包括:获取浏览器的http请求;根据浏览器的http请求,得出插件调用需求;调用插件库中的相应插件;将调用结果通过http的形式返回给浏览器。

其中,插件库中存储有ActiveX插件、NPAPI插件以及PPAPI插件。

其中,浏览器的http请求中包含对插件的调用需求。

为了解决上述技术问题,本发明实施例提供了一种基于http的web插件调用系统包括,该基于http的web插件调用系统包括:宿主程序模块,用于与浏览器进行信息互通,接收浏览器的http请求并将插件调用结果以http的形式发送至浏览器;插件模块,与宿主程序模块通信连接,存储有插件以待宿主程序模块进行调用。

其中,插件模块中存储有ActiveX插件、NPAPI插件以及PPAPI插件。

其中,插件模块进一步完成插件本身的功能,实现插件的输入输出功能。

实施本发明实施例,具有如下有益效果:本发明实现了一种控件,适配多种浏览器的目的,并且同时解决了因为浏览器插件技术的不同,出现的插件调用失败,页面卡死等情况。在后期的代码维护上,也只需要维护一份代码,极大的减少了重复性工作,也降低了插件产品的故障率。

附图说明

图1是本发明第一实施例的基于http的web插件调用方法的流程图;

图2是本发明第二实施例的基于http的web插件调用系统的结构示意图。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是本发明第一实施例的基于http的web插件调用方法的流程图。本发明提供了一种基于http的web插件调用方法,该基于http的web插件调用方法包括步骤:

在步骤S11中,获取浏览器的http请求。其中,浏览器的http请求中包含对插件的调用需求。

在步骤S12中,根据浏览器的http请求,得出插件调用需求。

在步骤S13中,调用插件库中的相应插件。插件库中存储有ActiveX插件、NPAPI插件以及PPAPI插件。当然,插件库中也可以存储其他插件,只不过此三种插件应用较广,因此紧列出此三种插件。

在步骤S14中,将调用结果通过http的形式返回给浏览器。宿主程序模块

请参阅图2,图2是本发明第二实施例的基于http的web插件调用系统的结构示意图。该基于http的web插件调用系统包括宿主程序模块22以及插件模块21。

宿主程序模块22用于与浏览器进行信息互通,接收浏览器的http请求并将插件调用结果以http的形式发送至浏览器。

插件模块21与宿主程序模块22通信连接,存储有插件以待宿主程序模块22进行调用。其中,插件模块21中存储有ActiveX插件、NPAPI插件以及PPAPI插件。插件模块21还可以进一步完成插件本身的功能,实现插件的输入输出功能,以提高效率。

具体来说,整个调用过程可以分为三个模块。第一个模块为浏览器脚本10部分,该模块的功能就是利用浏览器脚本10本身可以发送Http请求的功能,将插件的调用发送给本地进程。第二个模块为插件模块21,该模块完成插件本身的功能,实现插件的输入输出功能。第三个模块是宿主程序模块22,该模块可以加载插件模块21,对插件进行调用,解决了浏览器只能加载特定技术下开发的插件的问题;同时,宿主模块可以接收浏览器脚本10发送过来的Http调用请求,并将调用结果通过Http的形式返回给浏览器。

在这样的设计模式下,将普通的浏览器加载插件的方式,改为了由宿主程序加载插件,解决了因为浏览器不同以及插件技术不同,导致的插件加载失败问题。而且宿主程序可控,提高了插件加载的成功率。然后,利用了浏览器脚本10发送Http请求的原理,将插件调用请求发送给宿主程序,解决了跨进程调用间的问题。

例如,在传统的B/S应用模式下,如果用到了插件,那么对于不同的浏览器,相同的插件功能,需要分别开发适用于IE的ACTIVEX控件,适用于FireFox的NPAPI的插件,适用于Chrome的PPAPI插件。同时在系统下还要针对不同的浏览器,做浏览器的代码适配工作。在系统以后的维护和升级过程中,也需要同时维护三种不同技术的插件,无形之中增加了系统的复杂性和维护成本。如果使用本发明,只用开发一个动态链接库文件,然后在宿主程序中加入此动态链接库的功能,在B/S应用模式下,所有和插件有关的功能,通过浏览器和宿主程序的通信完成,不用重复开发基于各个浏览器技术的插件程序,不但可以减少系统的开发周期和开发成本,还能降低系统后期的维护成本。

实施本发明实施例,具有如下有益效果:本发明实现了一种控件,适配多种浏览器的目的,并且同时解决了因为浏览器插件技术的不同,出现的插件调用失败,页面卡死等情况。在后期的代码维护上,也只需要维护一份代码,极大的减少了重复性工作,也降低了插件产品的故障率。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1