CN103064738B - Linux下本地应用程序窗体嵌入浏览器的方法及系统 - Google Patents

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

Info

Publication number
CN103064738B
CN103064738B CN201310015431.0A CN201310015431A CN103064738B CN 103064738 B CN103064738 B CN 103064738B CN 201310015431 A CN201310015431 A CN 201310015431A CN 103064738 B CN103064738 B CN 103064738B
Authority
CN
China
Prior art keywords
browser
local application
dbus
plug
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310015431.0A
Other languages
English (en)
Other versions
CN103064738A (zh
Inventor
詹欣坤
陈旺
刘强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Kingsoft Office Software Co Ltd
Original Assignee
Beijing Kingsoft Office Software Inc
Zhuhai Kingsoft Office Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Office Software Inc, Zhuhai Kingsoft Office Software Co Ltd filed Critical Beijing Kingsoft Office Software Inc
Priority to CN201310015431.0A priority Critical patent/CN103064738B/zh
Publication of CN103064738A publication Critical patent/CN103064738A/zh
Application granted granted Critical
Publication of CN103064738B publication Critical patent/CN103064738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种Linux下本地应用程序窗体嵌入浏览器的方法及系统,浏览器首先获得浏览器插件内的插件对象,插件对象启动本地程序进程并使本地应用程序窗体嵌入至浏览器,之后插件对象调用浏览器插件内的插件接口,插件接口通过利用Linux下的DBus与本地应用程序进行通信,从而完成相关调用。这种方法可以缩短网页打开与本地应用程序相关文件的速度,使阅读、浏览和办公更加方便和快捷。

Description

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通过JavaScript脚本与浏览器插件通信。
进一步,所述本地应用程序窗体符合X Window协议。
Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中:
浏览器插件模块,包括对象模块和接口模块;
浏览器,包括NPAPI接口模块,浏览器通过NPAPI接口模块与对象模块通信,加载浏览器插件模块;
对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块;
DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用并执行对应的操作。
进一步,所述NPAPI接口模块通过JavaScript脚本与对象模块通信,从而加载浏览器插件模块。
进一步,所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时DBus通信模块为此DBus连接命名。
进一步,所述DBus通信模块为此DBus连接命名时,加密后的浏览器窗口ID作为DBus连接名字的一部分。
进一步,所述本地应用程序窗体符合X Window协议。
本发明的有益效果是:
本发明采用一种在Linux下本地应用程序窗体嵌入浏览器的方法及系统,通过浏览器提供的NPAPI可以和浏览器插件进行通信,获取插件对象;插件对象启动本地应用程序并使本地应用程序窗体嵌入至浏览器;插件对象调用插件接口;插件接口通过利用Linux下的DBus与本地应用程序进程进行通信,从而实现对本地应用程序的调用。这样不用打开本地程序而直接通过调用就可以在浏览器中使用, 不仅减少操作时间,也使用户感到方便和快捷。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明方法的程序流程图。
图2是本发明系统的组成结构示意图。
图3是本发明具体实施例的程序流程图。
具体实施方式
图1是本发明方法的程序流程图,参照图1所示,包括以下步骤:
步骤A,通过浏览器提供的NPAPI与浏览器插件通信,获得浏览器插件内的插件对象。
本步骤中,浏览器提供的NPAPI通过JavaScript脚本与浏览器插件通信,获得浏览器插件内的插件对象。所述NPAPI即网景插件应用程序接口,是用于在浏览器中执行外部应用程序的通用接口。所述JavaScript脚本是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言。
步骤B,插件对象启动本地应用程序,并使本地应用程序窗体嵌入到浏览器。
本步骤中,插件对象通过调用JavaScript函数启动本地应用程序进程,并使本地应用窗体嵌入到浏览器当中。其中,本地应用程序具有窗体,且本地应用程序窗体符合X Window协议。所述X Window协议是标准化软件工具包及显示架构的运作协议。
步骤C,插件对象调用对应的浏览器插件内的插件接口。
本步骤中,插件对象可以直接调用浏览器插件内的插件接口。
步骤D,插件接口通过Linux下的DBus与本地应用程序进行通信,实现对本地应用程序的调用并完成对应的操作。
本步骤中,Linux下的DBus根据插件接口提供的服务名字和路径名字在插件接口和本地应用程序进程之间建立DBus连接,并为此DBus连接命名,命名时,加密后的浏览器的窗口ID作为DBus连接的一部分。插件接口通过DBus连接与本地应用程序进行通信,实现对本地应用程序的调用并完成相关的操作。所述DBus是一个适用于桌面应用的进程间的通讯机制。由于浏览器的窗口ID是唯一的,保证了同时启动多个窗口时调用本地应用程序不受影响,窗口ID加密后,使每次启动的服务名字都不同,其它程序就无法使用此服务名字。
图2是本发明系统的组成结构示意图,参照图2所示,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中:
浏览器插件模块,包括对象模块和接口模块;
浏览器,包括NPAPI接口模块,NPAPI接口模块通过JavaScript脚本与对象模块通信,从而加载浏览器插件模块;
对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块;
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,插件对象调用JavaScript函数启动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通过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(),通过此命令即可实现调用,其中Open()为我们所需要的最低端的API。然后此命令会被插件接口打包成调用消息以便和DBus进行通信。
消息包含了传送者和接收者及消息实体。DBus会根据消息提供的服务名字和路径名字在插件接口和对应的WPS进程之间建立对应的DBus连接,同时为此DBus连接命名。WPS提供有一个对应的服务,插件会找到并连接这个服务,根据对应的路径索引信息,调用到相应的WPS接口。本实施例中,插件最终会找到最终的Open()接口,并完成相关的调用。完成调用之后,WPS会将结果打包成消息传递给浏览器插件。这种方式可以轻松实现对WPS的调用,满足用户浏览网页的需要,并使操作简单化从而减少时间。
火狐浏览器打开的每个窗口都有一个窗口ID,且每个窗口ID都是不一样的。为了使同时启动多个窗口时调用WPS不受影响,在为DBus连接命名时,火狐浏览器窗口的窗口ID也被加入进去,这样就保证了每次启动的服务名字是不同的,为了不让其它程序使用此服务名字,可以给窗口ID加密,使其它程序无法使用此服务名字。
完成相关的操作后或闭关浏览器时,退出WPS即可。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

Claims (6)

1.Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于,包括以下步骤:
步骤A,通过浏览器提供的NPAPI与浏览器插件通信,获得浏览器插件内的插件对象;
步骤B,插件对象启动本地应用程序,并使本地应用程序窗体嵌入到浏览器;
步骤C,插件对象调用对应的浏览器插件内的插件接口;
步骤D,插件接口通过Linux下的DBus与本地应用程序进行通信,实现对本地应用程序的调用并完成对应的操作,其中,DBus根据插件接口提供的服务名字和路径名字在插件接口和本地应用程序进程之间建立DBus连接,实现二者之间的通信,同时为DBus连接命名,为DBus连接命名时,加密后的浏览器的窗口ID作为DBus连接名字的一部分。
2.根据权利要求1所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于:所述步骤A中,浏览器提供的NPAPI通过JavaScript脚本与浏览器插件通信。
3.根据权利要求1至2任一所述的Linux下本地应用程序窗体嵌入浏览器的方法,其特征在于:所述本地应用程序窗体符合X Window协议。
4.Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于,包括浏览器,浏览器插件模块,本地应用程序和DBus通信模块,其中:
浏览器插件模块,包括对象模块和接口模块;
浏览器,包括NPAPI接口模块,浏览器通过NPAPI接口模块与对象模块通信,加载浏览器插件模块;
对象模块,用于启动本地应用程序,并使本地应用程序窗体嵌入至浏览器,对象模块也用于调用接口模块;
DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用并执行对应的操作;
其中,所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时DBus通信模块为此DBus连接命名,所述DBus通信模块为此DBus连接命名时,加密后的浏览器窗口ID作为DBus连接名字的一部分。
5.根据权利要求4所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于:所述NPAPI接口模块通过JavaScript脚本与对象模块通信,加载浏览器插件模块。
6.根据权利要求4至5任一所述的Linux下本地应用程序窗体嵌入浏览器的系统,其特征在于:所述本地应用程序窗体符合X Window协议。
CN201310015431.0A 2013-01-15 2013-01-15 Linux下本地应用程序窗体嵌入浏览器的方法及系统 Active CN103064738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310015431.0A CN103064738B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序窗体嵌入浏览器的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310015431.0A CN103064738B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序窗体嵌入浏览器的方法及系统

Publications (2)

Publication Number Publication Date
CN103064738A CN103064738A (zh) 2013-04-24
CN103064738B true CN103064738B (zh) 2016-11-02

Family

ID=48107371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310015431.0A Active CN103064738B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序窗体嵌入浏览器的方法及系统

Country Status (1)

Country Link
CN (1) CN103064738B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331224B (zh) * 2013-07-22 2018-02-23 腾讯科技(深圳)有限公司 一种网页内容浏览方法及装置、终端设备
CN104158856B (zh) * 2014-07-23 2017-05-24 武汉理工大学 无需预先构建安全会话的本地api调用方法
CN106293966B (zh) * 2016-08-03 2019-10-18 武汉深之度科技有限公司 一种lfs系统中ap层与sp层的通信方法及lfs系统
CN107493336A (zh) * 2017-08-21 2017-12-19 北京北信源软件股份有限公司 实现客户端插件化的方法和装置、可读介质和存储控制器
CN107632884B (zh) * 2017-09-12 2021-06-01 成都安恒信息技术有限公司 一种浏览器通过中间装置启动外部应用程序的方法
CN110633156B (zh) * 2018-06-22 2022-03-25 杭州海康威视系统技术有限公司 浏览器关联应用程序的方法、装置及电子设备、存储介质
EP3671449A4 (en) * 2018-06-22 2020-12-02 Hangzhou Hikvision System Technology Co., Ltd. ASSOCIATION OF BROWSER APPLICATIONS
CN111061976B (zh) * 2019-12-31 2023-08-08 哈尔滨海能达科技有限公司 浏览器的对象展示方法及装置
CN113741992A (zh) * 2020-05-15 2021-12-03 永中软件股份有限公司 一种Java应用程序窗口嵌入浏览器的方法
CN111880946B (zh) * 2020-07-14 2024-04-19 杭州海康威视数字技术股份有限公司 本地服务提供方法、装置及设备、存储介质
CN112269671B (zh) * 2020-11-14 2023-07-07 江西金格科技有限公司 一种在网页中使用Office编程接口的方法
US20230367892A1 (en) * 2022-05-13 2023-11-16 Intuit Inc. Secure embedded web browser
CN114936538B (zh) * 2022-05-16 2023-02-03 三峡高科信息技术有限责任公司 基于浏览器和办公软件客户端进行文档比对的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546811A (zh) * 2012-01-17 2012-07-04 百度在线网络技术(北京)有限公司 一种为移动终端安装浏览器插件的方法与设备
CN102567125A (zh) * 2011-12-28 2012-07-11 中标软件有限公司 一种浏览器页面间通信的方法
CN102819451A (zh) * 2011-06-09 2012-12-12 深圳市财付通科技有限公司 一种浏览器插件调用方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495890A (zh) * 2011-12-09 2012-06-13 上海全景数字技术有限公司 嵌入式浏览器应用扩展系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819451A (zh) * 2011-06-09 2012-12-12 深圳市财付通科技有限公司 一种浏览器插件调用方法及系统
CN102567125A (zh) * 2011-12-28 2012-07-11 中标软件有限公司 一种浏览器页面间通信的方法
CN102546811A (zh) * 2012-01-17 2012-07-04 百度在线网络技术(北京)有限公司 一种为移动终端安装浏览器插件的方法与设备

Also Published As

Publication number Publication date
CN103064738A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN103064738B (zh) Linux下本地应用程序窗体嵌入浏览器的方法及系统
US8396939B2 (en) Content distribution management device, terminal, program, and content distribution system
US10069832B2 (en) Ephemeral applications
CN102819561B (zh) 一种基于网页的图片显示方法和装置
CN104199723B (zh) 基于虚拟设备的摄像头映射方法
CN104704468A (zh) Web应用程序的跨系统安装
CN105718313A (zh) 应用操作方法和装置
US9690757B2 (en) Method of and system for processing content of a web resource in a browser application
CN108416021B (zh) 一种浏览器网页内容处理方法、装置、电子设备及可读介质
CN104995927A (zh) 用于构建和使用混合移动应用的系统和方法
US10116638B2 (en) Method and device for uploading data to social platform
US20170192941A1 (en) Computer-Automated Generation of Application Deep Links
US20210294468A1 (en) Streamlined hosted applications
CN103092941A (zh) 在电子设备上呈现内容的方法和装置
US7360154B2 (en) System and method for virtual router enabled electronic documents
CN103838799A (zh) 一种推荐安装软件的方法、终端设备、云端服务器及系统
CN106569860A (zh) 一种应用管理方法及终端
KR101727235B1 (ko) 공동 편집을 지원하는 문서 편집 시스템 및 방법
US10339175B2 (en) Aggregating photos captured at an event
CN110716720A (zh) 一种实现应用热部署的方法和装置
CN111563015A (zh) 数据监控方法及装置、计算机可读介质及终端设备
US9805181B1 (en) Messaging channel for web pages and web applications
CN109634641A (zh) 一种应用程序更新方法、装置、电子设备及介质
KR101525967B1 (ko) 구성 프로파일 공유 서비스 제공 방법
CN102118439A (zh) 一种文档内容的自动处理方法、自动处理装置及编辑器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee after: Zhuhai Kingsoft Office Software Co., Ltd.

Patentee after: Beijing Kingsoft office software Limited by Share Ltd

Address before: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee before: Zhuhai Kingsoft Office Software Co., Ltd.

Patentee before: Beijing Kingsoft WPS Office Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210427

Address after: 519015 Jinshan Software Park Building No. 5, 321 Qiandao Ring Road, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ZHUHAI KINGSOFT OFFICE SOFTWARE Co.,Ltd.

Address before: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee before: ZHUHAI KINGSOFT OFFICE SOFTWARE Co.,Ltd.

Patentee before: BEIJING KINGSOFT OFFICE SOFTWARE Co.,Ltd.