admin 管理员组

文章数量: 1086019


2024年12月25日发(作者:os获取当前路径)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.0

(22)申请日 2013.01.15

(71)申请人 珠海金山办公软件有限公司;北京金山办公软件有限公司

地址 519015 广东省珠海市吉大景山路莲山巷8号金山软件大厦

(72)发明人 詹欣坤 陈旺 刘强

(74)专利代理机构 广州嘉权专利商标事务所有限公司

代理人 陈国荣

(51)

G06F9/48

权利要求说明书 说明书 幅图

(10)申请公布号 CN 103064738 A

(43)申请公布日 2013.04.24

(54)发明名称

Linux下本地应用程序窗体嵌入浏

览器的方法及系统

(57)摘要

本发明公开了一种Linux下本地应

用程序窗体嵌入浏览器的方法及系统,浏

览器首先获得浏览器插件内的插件对象,

插件对象启动本地程序进程并使本地应用

程序窗体嵌入至浏览器,之后插件对象调

用浏览器插件内的插件接口,插件接口通

过利用Linux下的DBus与本地应用程序进

行通信,从而完成相关调用。这种方法可

以缩短网页打开与本地应用程序相关文件

的速度,使阅读、浏览和办公更加方便和

快捷。

法律状态

法律状态公告日

2017-03-01

2016-11-02

2013-05-29

2013-04-24

法律状态信息

专利权人的姓名或者名称、地址

的变更

授权

实质审查的生效

公开

法律状态

专利权人的姓名或者名

称、地址的变更

授权

实质审查的生效

公开

权 利 要 求 说 明 书

下本地应用程序窗体嵌入浏览器的方法,其特征在于,包括以下步骤:

步骤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协议。

下本地应用程序窗体嵌入浏览器的系统,其特征在于,包括浏览器,浏览

器插件模块,本地应用程序和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下本地应用程序窗体嵌入浏览器的

方法及系统。

背景技术

目前,插件在浏览器中的应用已经十分普遍。在安装好插件后,浏览器能够直接应

用插件程序,通过对本地应用程序的调用,方便快捷地处理相应的文件,从而大量

减少打开网页的时间。但由于插件需要调用系统提供的函数库或者数据,所以,一

般开发者为满足多数用户的需求,经常是针对最流行的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函数启动本地应用程序进程,并使本地应

用窗体嵌入到浏览器当中。其中,本地应用程序具有窗体,且本地应用程序窗体符

合X Window协议。所述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协议。

需要说明的是,所述本地应用程序包括但不限于控制台程序、办公软件程序、PDF

浏览器等,且本地应用程序有对应的窗体程序。所述浏览器为可向万维网(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文档中的打开命令Open()为例。在安装WPS本地程序时,

用户会自动安装浏览器插件。在火狐浏览器需要用到相关的WPS文件时,如WPS

文档,WPS演示或WPS表格,当火狐浏览器启动时,浏览器插件程序会随着浏览

器的启动自动执行。之后,利用火狐浏览器提供的NPAPI就可以和浏览器插件进

行通信。浏览器插件是一个程序集合,包含有对象和函数库。利用JavaScript脚本

语言可以使火狐浏览器通过NPAPI与浏览器插件进行通信。首先载入浏览器插件,

通过<object name="webwps" type="application/x-wps">可以载入浏览器插件,

其中"application/x-wps"已经在浏览器插件中定义。Javascript通过

可以获得浏览器插件内的插件对象,插件对象调用Javascript函数启动WPS进程并

把WPS窗体嵌入至火狐浏览器,通过嵌入的方式可以更方便操作和使用。之后,

插件对象会调用浏览器插件内的插件接口。

本实施例中,WPS窗体符合X Window协议。所述X Window协议是标准化软件工

具包及显示架构的运作协议。

由于WPS开放了一套树型的API接口,因此,只要我们通过最顶端的API即

Application逐级往下找,就可以找到所需要的API。插件接口继承WPS的树形

API接口,从而在调用时可以保持插件接口与对应的WPS接口两端一致。当我们

需要调用打开命令时,只要我们知道WPS中最顶端到所需最低端的API接口集合,

通过逐级查找,就可以找到所需要的命令:

(),通过此命令即可实现调用,其中

Open()为我们所需要的最低端的API。然后此命令会被插件接口打包成调用消息以

便和DBus进行通信。

消息包含了传送者和接收者及消息实体。DBus会根据消息提供的服务名字和路径

名字在插件接口和对应的WPS进程之间建立对应的DBus连接,同时为此DBus连

接命名。WPS提供有一个对应的服务,插件会找到并连接这个服务,根据对应的

路径索引信息,调用到相应的WPS接口。本实施例中,插件最终会找到最终的

Open()接口,并完成相关的调用。完成调用之后,WPS会将结果打包成消息传递

给浏览器插件。这种方式可以轻松实现对WPS的调用,满足用户浏览网页的需要,

并使操作简单化从而减少时间。

火狐浏览器打开的每个窗口都有一个窗口ID,且每个窗口ID都是不一样的。为了

使同时启动多个窗口时调用WPS不受影响,在为DBus连接命名时,火狐浏览器

窗口的窗口ID也被加入进去,这样就保证了每次启动的服务名字是不同的,为了

不让其它程序使用此服务名字,可以给窗口ID加密,使其它程序无法使用此服务

名字。

完成相关的操作后或闭关浏览器时,退出WPS即可。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要

其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。


本文标签: 浏览器 插件 应用程序 调用 模块