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即可。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要
其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
版权声明:本文标题:Linux下本地应用程序窗体嵌入浏览器的方法及系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735181749a1641647.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论