Linux下本地应用程序窗体嵌入浏览器的方法及系统的制作方法

文档序号:6397913阅读:648来源:国知局
专利名称:Linux下本地应用程序窗体嵌入浏览器的方法及系统的制作方法
技术领域
本发明涉及浏览器的嵌入,尤其是一种在Linux下本地应用程序窗体嵌入浏览器的方法及系统。
背景技术
目前,插件在浏览器中的应用已经十分普遍。在安装好插件后,浏览器能够直接应用插件程序,通过对本地应用程序的调用,方便快捷地处理相应的文件,从而大量减少打开网页的时间。但由于插件需要调用系统提供的函数库或者数据,所以,一般开发者为满足多数用户的需求,经常是针对最流行的Windows操作系统来开发的,比如Windows XP、Windows 7和Windows 8等。但对于安装其它操作系统,尤其是Linux的用户来说,当用户使用浏览器浏览网页时,如果浏览器无法加载对应的本地应用程序,网页会无法显示,给用户浏览网页带来不便;当用户需要通过浏览器打开文件并对文件进行操作时,如果浏览器无法加载对应的本地应用程序,同样会发现无法打开文件进而无法操作,为此用户常常需要通过相关的下载软件下载文件后,通过本地应用程序打开才能进行操作,这样会严重浪费时间。

发明内容
为解决上述问题,本发明的目的在于提供一种在Linux下本地应用程序窗体嵌入浏览器的方法及系统,通过浏览器提供的NPAPI与浏览器插件进行通信,浏览器插件通过利用Linux下的DBus与本地应用程序进程进行通信,实现本地程序窗体的嵌入和本地应用程序的调用,使浏览器网页正常显示并减少操作时间。本发明解决其问题所采用的技术方案是
Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于,包括以下步骤
步骤A,通过浏览器提供的NPAPI与浏览器插件通信,获得浏览器插件内的插件对象; 步骤B,插件对象启动本地应用程序,并使本地应用程序窗体嵌入到浏览器;
步骤C,插件对象调用对应的浏览器插件内的插件接口 ;
步骤D,插件接口通过Linux下的DBus与本地应用程序进行通信,实现对本地应用程序的调用并完成对应的操作。进一步,所述步骤D中,DBus根据插件接口提供的服务名字和路径名字在插件接口和本地应用程序进程之间建立DBus连接,实现二者之间的通信,同时为DBus连接命名。进一步,所述为DBus连接命名时,加密后的浏览器的窗口 ID作为DBus连接名字的一部分。进一步,所述步骤A中,浏览器提供的NPAPI通过JaveScript脚本与浏览器插件通信。进一步,所述本地应用程序窗体符合X Window协议。Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中
浏览器插件模块,包括对象模块和接口模块;
浏览器,包括NPAPI接口模块,浏览器通过NPAPI接口模块与对象模块通信,加载浏览器插件模块;
对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块;
DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用并执行对应的操作。进一步,所述NPAPI接口模块通过JaveScript脚本与对象模块通信,从而加载浏览器插件模块。进一步,所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时DBus通信模块为此DBus连接命名。进一步,所述DBus通信模块为此DBus连接命名时,加密后的浏览器窗口 ID作为DBus连接名字的一部分。进一步,所述本地应用程序窗体符合X Window协议。本发明的有益效果是
本发明采用一种在Linux下本地应用程序窗体嵌入浏览器的方法及系统,通过浏览器提供的NPAPI可以和浏览器插件进行通信,获取插件对象;插件对象启动本地应用程序并使本地应用程序窗体嵌入至浏览器;插件对象调用插件接口 ;插件接口通过利用Linux下的DBus与本地应用程序进程进行通信,从而实现对本地应用程序的调用。这样不用打开本地程序而直接通过调用就可以在浏览器中使用,不仅减少操作时间,也使用户感到方便和快捷。


下面结合附图和实例对本发明作进一步说明。图1是本发明方法的程序流程图。图2是本发明系统的组成结构示意图。图3是本发明具体实施例的程序流程图。
具体实施例方式图1是本发明方法的程序流程图,参照图1所示,包括以下步骤
步骤A,通过浏览器提供的NPAPI与浏览器插件通信,获得浏览器插件内的插件对象。本步骤中,浏览器提供的NPAPI通过JaveScript脚本与浏览器插件通信,获得浏览器插件内的插件对象。所述NPAPI即网景插件应用程序接口,是用于在浏览器中执行外部应用程序的通用接口。所述JaveScript脚本是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言。步骤B,插件对象启动本地应用程序,并使本地应用程序窗体嵌入到浏览器。本步骤中,插件对象通过调用JaveScript函数启动本地应用程序进程,并使本地应用窗体嵌入到浏览器当中。其中,本地应用程序具有窗体,且本地应用程序窗体符合XWindow协议。所述X Window协议是标准化软件工具包及显示架构的运作协议。步骤C,插件对象调用对应的浏览器插件内的插件接口。本步骤中,插件对象可以直接调用浏览器插件内的插件接口。步骤D,插件接口通过Linux下的DBus与本地应用程序进行通信,实现对本地应用程序的调用并完成对应的操作。本步骤中,Linux下的DBus根据插件接口提供的服务名字和路径名字在插件接口和本地应用程序进程之间建立DBus连接,并为此DBus连接命名,命名时,加密后的浏览器的窗口 ID作为DBus连接的一部分。插件接口通过DBus连接与本地应用程序进行通信,实现对本地应用程序的调用并完成相关的操作。所述DBus是一个适用于桌面应用的进程间的通讯机制。,由于浏览器的窗口 ID是唯一的,保证了同时启动多个窗口时调用本地应用程序不受影响,窗口 ID加密后,使每次启动的服务名字都不同,其它程序就无法使用此服务名字。图2是本发明系统的组成结构示意图,参照图2所示,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中
浏览器插件模块,包括对象模块和接口模块;
浏览器,包括NPAPI接口模块,NPAPI接口模块通过JaveScript脚本与对象模块通信,从而加载浏览器插件模块;
对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块;
DBus通信模块,通过建立DBus连接实现接口模块和本地应用程序之间的通信,实现接口模块对本地应用程序的调用并执行对应的操作。DBus通信模块在建立DBus连接时,会为此DBus连接命名,命名时,加密后的浏览器窗口 ID作为DBus连接名字的一部分。所述本地应用程序窗体符合X Window协议。需要说明的是,所述本地应用程序包括但不限于控制台程序、办公软件程序、TOF浏览器等,且本地应用程序有对应的窗体程序。所述浏览器为可向万维网(Web)服务器发送各种请求,并对从服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放。所述浏览器无特殊限制,其包括但不限于IE,360安全浏览器,火狐浏览器,世界之窗浏览器,TT浏览器,搜狗浏览器,谷歌浏览器,opera浏览器,maxthon浏览器,greenbrowser浏览器,chromeplus浏览器,彩虹浏览器,Safari for windows浏览器,Google Chrome浏览器。所述本地应用程序窗体嵌入浏览器的方法相同或相似,本发明皆可实现。图3是本发明具体实施例的程序流程图,参照图3所示,本实施例选取火狐浏览器和WPS本地应用程序进行说明,还包括有Linux操作系统和浏览器插件,其步骤如下
步骤A,火狐浏览器提供的NPAPI通过JavaScript与浏览器插件通信,获得浏览器插件内的插件对象;
步骤B,插件对象调用JaveScript函数启动WPS进程并把对应的WPS窗体嵌入至火狐浏览器;
步骤C,插件对象调用浏览器插件内的插件接口 ;
步骤D,插件接口通过Linux下的DBus与WPS进程进行通信,实现对WPS内部功能的调用并完成相关操作。
本实施例以调用WPS文档中的打开命令OpenO为例。在安装WPS本地程序时,用户会自动安装浏览器插件。在火狐浏览器需要用到相关的WPS文件时,如WPS文档,WPS演示或WPS表格,当火狐浏览器启动时,浏览器插件程序会随着浏览器的启动自动执行。之后,利用火狐浏览器提供的NPAPI就可以和浏览器插件进行通信。浏览器插件是一个程序集合,包含有对象和函数库。利用JavaScript脚本语言可以使火狐浏览器通过NPAPI与浏览器插件进行通信。首先载入浏览器插件,通过〈object name=〃webwps〃type=〃application/x_wps〃>可以载入浏览器插件,其中〃application/x_wps〃已经在浏览器插件中定义。Javascript通过document, webwps可以获得浏览器插件内的插件对象,插件对象调用Javascript函数启动WPS进程并把WPS窗体嵌入至火狐浏览器,通过嵌入的方式可以更方便操作和使用。之后,插件对象会调用浏览器插件内的插件接口。本实施例中,WPS窗体符合X Window协议。所述X Window协议是标准化软件工具包及显示架构的运作协议。由于WPS开放了一套树型的API接口,因此,只要我们通过最顶端的API即Application逐级往下找,就可以找到所需要的API。插件接口继承WPS的树形API接口,从而在调用时可以保持插件接口与对应的WPS接口两端一致。当我们需要调用打开命令时,只要我们知道WPS中最顶端到所需最低端的API接口集合,通过逐级查找,就可以找到所需要的命令document. webwps. Application. Documents. Open (),通过此命令即可实现调用,其中OpenO为我们所需要的最低端的API。然后此命令会被插件接口打包成调用消息以便和DBus进行通信。消息包含了传送者和接收者及消息实体。DBus会根据消息提供的服务名字和路径名字在插件接口和对应的WPS进程之间建立对应的DBus连接,同时为此DBus连接命名。WPS提供有一个对应的服务,插件会找到并连接这个服务,根据对应的路径索引信息,调用至IJ相应的WPS接口。本实施例中,插件最终会找到最终的OpenO接口,并完成相关的调用。完成调用之后,WPS会将结果打包成消息传递给浏览器插件。这种方式可以轻松实现对WPS的调用,满足用户浏览网页的需要,并使操作简单化从而减少时间。火狐浏览器打开的每个窗口都有一个窗口 ID,且每个窗口 ID都是不一样的。为了使同时启动多个窗口时调用WPS不受影响,在为DBus连接命名时,火狐浏览器窗口的窗口 ID也被加入进去,这样就保证了每次启动的服务名字是不同的,为了不让其它程序使用此服务名字,可以给窗口 ID加密,使其它程序无法使用此服务名字。完成相关的操作后或闭关浏览器时,退出WPS即可。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
权利要求
1.Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于,包括以下步骤 步骤A,通过浏览器提供的NPAPI与浏览器插件通信,获得浏览器插件内的插件对象; 步骤B,插件对象启动本地应用程序,并使本地应用程序窗体嵌入到浏览器; 步骤C,插件对象调用对应的浏览器插件内的插件接口 ; 步骤D,插件接口通过Linux下的DBus与本地应用程序进行通信,实现对本地应用程序的调用并完成对应的操作。
2.根据权利要求1所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于所述步骤D中,DBus根据插件接口提供的服务名字和路径名字在插件接口和本地应用程序进程之间建立DBus连接,实现二者之间的通信,同时为DBus连接命名。
3.根据权利要求2所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于所述为DBus连接命名时,加密后的浏览器的窗口 ID作为DBus连接名字的一部分。
4.根据权利要求1所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于所述步骤A中,浏览器提供的NPAPI通过JaveScript脚本与浏览器插件通信。
5.根据权利要求1至4任一所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于所述本地应用程序窗体符合X Window协议。
6.Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中 浏览器插件模块,包括对象模块和接口模块; 浏览器,包括NPAPI接口模块,浏览器通过NPAPI接口模块与对象模块通信,加载浏览器插件模块; 对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块; DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用并执行对应的操作。
7.根据权利要求6所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于所述NPAPI接口模块通过JaveScript脚本与对象模块通信,加载浏览器插件模块。
8.根据权利要求6所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时DBus通信模块为此DBus连接命名。
9.根据权利要求8所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于所述DBus通信模块为此DBus连接命名时,加密后的浏览器窗口 ID作为DBus连接名字的一部分。
10.根据权利要求6至9任一所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于所述本地应用程序窗体符合X Window协议。
全文摘要
本发明公开了一种Linux下本地应用程序窗体嵌入浏览器的方法及系统,浏览器首先获得浏览器插件内的插件对象,插件对象启动本地程序进程并使本地应用程序窗体嵌入至浏览器,之后插件对象调用浏览器插件内的插件接口,插件接口通过利用Linux下的DBus与本地应用程序进行通信,从而完成相关调用。这种方法可以缩短网页打开与本地应用程序相关文件的速度,使阅读、浏览和办公更加方便和快捷。
文档编号G06F9/48GK103064738SQ20131001543
公开日2013年4月24日 申请日期2013年1月15日 优先权日2013年1月15日
发明者詹欣坤, 陈旺, 刘强 申请人:珠海金山办公软件有限公司, 北京金山办公软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1