CN113569180B - 一种通用浏览器扩展*** - Google Patents

一种通用浏览器扩展*** Download PDF

Info

Publication number
CN113569180B
CN113569180B CN202110855251.8A CN202110855251A CN113569180B CN 113569180 B CN113569180 B CN 113569180B CN 202110855251 A CN202110855251 A CN 202110855251A CN 113569180 B CN113569180 B CN 113569180B
Authority
CN
China
Prior art keywords
browser
message
webpage
module
function
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
CN202110855251.8A
Other languages
English (en)
Other versions
CN113569180A (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.)
CETC 28 Research Institute
Original Assignee
CETC 28 Research Institute
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 CETC 28 Research Institute filed Critical CETC 28 Research Institute
Priority to CN202110855251.8A priority Critical patent/CN113569180B/zh
Publication of CN113569180A publication Critical patent/CN113569180A/zh
Application granted granted Critical
Publication of CN113569180B publication Critical patent/CN113569180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种通用浏览器扩展***。所述扩展***屏蔽Chrome、Firefox、奇安信等浏览器接口差异,提供浏览器控制功能、网页间通信功能、网页与客户端通信功能、网页单例打开功能;能够对浏览器窗口的大小、位置、状态等控制,实现浏览器网页间及网页与客户端通信,避免单一功能页面重复打开,为信息***综合集成及应用开发提供支撑。该发明采用跨平台的JavaScript语言开发,能够跨不同操作***平台进行使用,做到一次编写、随处运行,能够运行在英特尔、龙芯、飞腾处理器上,兼容Windows、中标麒麟、银河麒麟等操作***,适配Chrome、Firefox、奇安信等浏览器,具备较好的扩展性和兼容性。

Description

一种通用浏览器扩展***
技术领域
本发明属于信息***领域,尤其涉及一种通用浏览器扩展***。
背景技术
目前,信息***在网页集成及应用开发时,通常有两种方法,一种是使用Qt的QWebView类封装浏览器,存在页面兼容性差、调试困难、适配工作量大的问题;另一种是使用原生浏览器打开网页,存在以下如下问题:无法通过软件对浏览器的大小、位置、状态进行控制;网页间、网页与客户端软件难以直接通信,信息交互通常需要依赖第三方服务;单一网页打开多次,浏览器中会出现相同页面出现多个的情况。
发明内容
本发明发明目的是以JavaScript语言开发的浏览器扩展,屏蔽了Chrome、Firefox、奇安信等浏览器的扩展差异,能够对浏览器的大小、位置、状态控制,实现网页间及网页与客户端双向通信、网页单例打开功能。适用于信息***综合集成及应用开发,尤其是指挥信息***国产化软硬件环境下的网页集成及应用开发领域。
本发明浏览器扩展***是采用JavaScript语言编程的浏览器扩展。所述扩展***包括接口屏蔽模块和通用功能模块。接口屏蔽模块针对Chrome、Firefox、奇安信浏览器原生扩展接口的差异,进行了兼容适配,对通用功能模块提供统一的开发接口;通用功能模块基于接口屏蔽模块,设计并实现了浏览器控制、网页间通信、网页与客户端通信、页面单例打开等功能。
本发明具体提供一种通用浏览器扩展***,包括浏览器接口屏蔽模块和通用功能模块;
所述浏览器接口屏蔽模块用于适配不同浏览器扩展接口差异,对外提供统一接口;
所述通用功能模块用于提供浏览器扩展的基础功能。
所述不同浏览器包括:Chrome浏览器、Firefox浏览器和奇安信浏览器。
所述浏览器接口屏蔽模块用于适配不同浏览器扩展接口差异,是通过获取当前运行的浏览器类型,选择不同的命名空间和接口方式,包括:
如果当前浏览器为Firefox浏览器,使用browser命名空间,使用Promise方式接口;
如果当前浏览器为Chrome或奇安信浏览器,则使用chrome命名空间,使用回调方式接口。
所述通用功能模块包括浏览器控制模块、网页间通信模块、客户端通信模块和网页单例打开模块;
所述浏览器控制模块用于实现浏览器的控制功能;
所述网页间通信模块用于实现网页间的信息交互功能;
所述客户端通信模块用于实现网页与客户端软件通信功能;
所述网页单例打开模块用于实现网页的单例打开功能。
所述浏览器扩展在技术架构上包括内容脚本和后台脚本。其中,内容脚本是网页和后台脚本通信的纽带,负责将网页的操控指令传递到后台脚本;后台脚本负责浏览器扩展的通用功能模块的实现。所述通用功能模块提供的功能遵循特定的要求,包括:
网页将相关的操控指令传递到内容脚本;
内容脚本对网页的操控指令进行转发,传递到后台脚本;
后台脚本根据相应的操控指令进行逻辑处理,调用接口屏蔽模块接口实现浏览器扩展的功能。
所述浏览器的控制功能,包括:浏览器大小控制、浏览器位置控制和浏览器状态控制。
所述网页间的信息交互功能,包括:
通过网页间通信模块,实现单个网页内部的消息通信;
通过网页间通信模块,实现网页与网页的消息通信。
所述网页间的信息交互遵循特定的要求,包括:
消息发送方和消息接收方,根据业务需求确定消息契约,包括消息主题和消息内容,其中消息主题内容为String类型,消息内容为JSON类型;
消息接收方根据消息契约,订阅指定消息主题的消息;
消息发送方根据消息契约生成JSON格式的消息内容,推送至消息契约中约定的消息主题;
消息接收方根据消息契约解析消息内容,并进行相应的业务逻辑处理。
所述网页与客户端软件通信功能,包括:
网页通过客户端通信模块,能够实现向客户端软件发送消息;
网页通过客户端通信模块,能够实现接收客户端软件的消息。
所述网页与客户端软件通信功能遵循特定的要求,包括:
网页和客户端通信WebSocket实现双向通信;
消息发送方和消息接收方,根据业务需求确定消息契约,包括消息主题和消息内容,其中消息主题内容为String类型,消息内容为JSON类型;
消息接收方根据消息契约,订阅指定消息主题的消息;
消息发送方根据消息契约生成JSON格式的消息内容,推送至消息契约中约定的消息主题;
消息接收方根据消息契约解析消息内容,进行相应的业务逻辑处理。
所述网页的单例打开功能通过在扩展中定义“窗口与页面”的映射关系,打开页面时判断当前要打开的页面是否存在于映射关系中,包括:
如果当前要打开的页面不在“窗口与页面”映射关系中,则调用接口屏蔽层接口实现网页打开并最大化置顶显示,并在映射关系中新增“窗口与页面”映射关系;
如果当前要打开的页面在“窗口与页面”映射关系中,则通过页面在映射关系中查找对应的窗口。
如果窗口未最大化置顶显示,激活窗口,并实现最大化置顶显示,否则不进行干预;
所述浏览器大小控制包括:浏览器的高度和宽度控制。
所述浏览器位置控制包括:浏览器距离屏幕左上角的横向距离、纵向距离控制。
所述浏览器状态控制包括:浏览器的最大化、最小化、全屏和还原控制。
本发明具有如下显著优点:
1)屏蔽Chrome、Firefox、奇安信等浏览器扩展的接口差异,为浏览器扩展一次编写、随处运行提供支撑。
2)接口屏蔽模块和通用功能模块分离,后续若需要适配其他浏览器,只需接口屏蔽模块增加相关的功能即可,对通用功能模块无影响。
3)支持直接控制浏览器大小、位置、状态功能,软件开发者可直接控制浏览器的最大化、最小化、还原、全屏、新增窗口、关闭窗口、新增Tab、移除Tab、自定义显示等;
4)支持网页间消息订阅发布式通信,解决了网页间信息交互难的问题;
5)支持网页与客户端通信,浏览器扩展通过WebSocket与客户端建立连接,对网页提供二次开发接口,实现网页与客户端通信,减少了对第三方软件的依赖,轻量可靠;
6)支持Web页面单例打开,页面功能首次打开时,新增Web页面,再次打开时,激活已打开的页面,避免同一功能页面重复打开的情况。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是浏览器扩展的体系架构图;
图2是浏览器扩展的功能组成图;
图3是浏览器扩展的外部关系图;
图4是接口屏蔽模块数据处理流程图;
图5是通用功能数据处理流程图;
图6是浏览器控制功能数据处理图;
图7是网页间通信数据处理流程图;
图8是客户端通信数据处理流程图;
图9是页面单例打开数据处理流程图。
具体实施方式
下面结合附图及示例对本发明做进一步说明。
1、浏览器扩展的功能组成与使用
如图1所示,本发明提供了一种通用浏览器扩展***,扩展***在功能组成上,包括接口屏蔽模块和通用功能模块。功能组成如图2所示。
接口屏蔽模块针对Chrome、Firefox、奇安信浏览器原生扩展接口的差异,进行了兼容适配,对通用功能模块提供统一的开发接口;
通用功能模块基于接口屏蔽模块,设计并实现了浏览器控制、网页间通信、网页与客户端通信、页面单例打开等功能。
浏览器对外与Web网页和客户端软件交互,外部交互关系如图3所示。网页通过调用浏览器扩展的二次开发接口实现与浏览器扩展的交互;客户端与浏览器扩展建立WebSocket连接实现交互。借助浏览器扩展,网页可实现与客户端软件双向的信息交互。
2、接口屏蔽
1)实现原理
浏览器扩展接口的差异包括命名空间差异和接口形式差异。在命名空间方面,Firefox浏览器扩展使用的命名空间为browser,Chrome、奇安信浏览器扩展使用的命名空间为chrome;在接口形式方面,Firefox浏览器扩展接口方法为Promise形式,Chrome、奇安信浏览器扩展方法为回调形式。依据此差异,接口屏蔽模块屏蔽Firefox、Chrome、奇安信浏览器扩展接口的命名空间和接口形式差异,对通用功能提供扩展统一接口。基于接口屏蔽模块,可屏蔽浏览器接口差异,为浏览器扩展一次编写、随处运行提供支撑。
2)数据处理流程
接口屏蔽模块获取当前运行的浏览器信息,如果为Firefox浏览器,则使用browser命名空间,调用Promise方式接口;如果为Chrome或奇安信浏览器,则使用chrome命名空间,调用回调方式接口;如果不是上述三种浏览器,则提示浏览器未适配。具体数据处理流程如图4所示。
3、通用功能
1)实现原理
浏览器通用功能模块在功能上包括浏览器控制模块、网页间通信模块、客户端通信模块、网页单例打开模块;在技术架构上包含内容脚本和后台脚本。内容脚本既可以与网页通信,又可以与后台脚本通信,是网页和后台脚本通信的纽带;后台脚本借助内容脚本的传递过来的网页消息,根据消息内容,进行浏览器控制、网页间通信、客户端通信、网页单例打开相应逻辑处理,调用接口屏蔽模块的接口,实现浏览器扩展通用功能。
2)通用数据处理流程
浏览器控制、网页间通信、客户端通信、网页单例打开通用功能的数据处理通用流程如图5所示。首先,网页将相关的操作指令传递到内容脚本,内容脚本对操作指令进行转发,传递到后台脚本,后台脚本根据相应的操作指令进行逻辑处理,并调用接口屏蔽模块的接口。
网页、内容脚本、后台脚本、接口屏蔽模块之间的信息交互方式见表1。
表1
浏览器控制、网页间通信、客户端通信、网页单例打开通用功能的网页传递指令至内容脚本、内容脚本转发指令至后台脚本步骤相同的;后台脚本根据指令逻辑处理、后台脚本调用接口屏蔽层接口步骤是有区别的,下面对后台脚本根据指令逻辑处理、后台脚本调用接口屏蔽层接口分别介绍。
3)浏览器控制流程
后台脚本根据控制指令的不同调用接口屏蔽层的不同接口实现浏览器控制功能。如图6所示。浏览器控制接口见表2:
表2
4)网页间通信流程
浏览器扩展通过订阅发布模式实现网页间消息通信,数据处理流程如图7。首先消息接收方和消息发送方根据业务需求,确定消息契约,明确消息交互内容按JSON格式交互,定义消息交互主题和消息交互内容字段的含义。消息接收方根据消息契约订阅特定主题的消息,消息发送方根据接口契约生成JSON格式的数据,发布消息主题,消息接收方接收消息内容,依据消息契约解析并进行相应处理。
5)客户端通信流程
浏览器扩展与客户端建立WebSocket连接,实现与客户端双向通信,数据处理流程如图8所示。网页向客户端发送消息时,网页根据消息契约生成JSON格式的数据,向客户端发送消息;网页在接收客户端消息时,浏览器扩展监听WebSocket消息,收到消息后依据消息契约进行解析,将解析后的消息推送到该消息的网页。
6)页面单例打开流程
在扩展中定义“窗口与页面”的映射关系,打开页面时,对当前打开的页面是否在映射关系中进行判断。若不在映射关系中,则调用接口屏蔽模块接口,在新窗口打开页面录,并在映射关系中新增一条记;若该页面已在“窗口与页面”的映射关系中,则通过页面查找对应的窗口,若该窗口未最大化显示,则调用接口屏蔽模块接口将窗口激活并最大化显示,若窗口已最大化显示,则返回。具体流程如图9所示。
本发明提供了一种通用浏览器扩展***,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (1)

1.一种通用浏览器扩展***,其特征在于,包括浏览器接口屏蔽模块和通用功能模块;
所述浏览器接口屏蔽模块用于适配不同浏览器扩展接口差异,对外提供统一接口;
所述通用功能模块用于提供浏览器扩展的基础功能;
所述不同浏览器包括:Chrome浏览器、Firefox浏览器和奇安信浏览器;
所述浏览器接口屏蔽模块用于适配不同浏览器扩展接口差异,是通过获取当前运行的浏览器类型,选择不同的命名空间和接口方式,包括:
如果当前浏览器为Firefox浏览器,使用browser命名空间,使用Promise方式接口;
如果当前浏览器为Chrome或奇安信浏览器,则使用chrome命名空间,使用回调方式接口;
所述通用功能模块包括浏览器控制模块、网页间通信模块、客户端通信模块和网页单例打开模块;
所述浏览器控制模块用于实现浏览器的控制功能;
所述网页间通信模块用于实现网页间的信息交互功能;
所述客户端通信模块用于实现网页与客户端软件通信功能;
所述网页单例打开模块用于实现网页的单例打开功能;
所述通用功能模块提供的功能遵循特定的要求,包括:
网页将相关的操控指令传递到内容脚本;
内容脚本对网页的操控指令进行转发,传递到后台脚本;
后台脚本根据相应的操控指令进行逻辑处理,调用接口屏蔽模块接口实现浏览器扩展的功能;
所述浏览器的控制功能,包括:浏览器大小控制、浏览器位置控制和浏览器状态控制;
所述网页间的信息交互功能,包括:
通过网页间通信模块,实现单个网页内部的消息通信;
通过网页间通信模块,实现网页与网页的消息通信;
所述网页间的信息交互遵循特定的要求,包括:
消息发送方和消息接收方,根据业务需求确定消息契约,包括消息主题和消息内容,其中消息主题内容为String类型,消息内容为JSON类型;
消息接收方根据消息契约,订阅指定消息主题的消息;
消息发送方根据消息契约生成JSON格式的消息内容,推送至消息契约中约定的消息主题;
消息接收方根据消息契约解析消息内容,并进行相应的业务逻辑处理;
所述网页与客户端软件通信功能,包括:
网页通过客户端通信模块,能够实现向客户端软件发送消息;
网页通过客户端通信模块,能够实现接收客户端软件的消息;
所述网页与客户端软件通信功能遵循特定的要求,包括:
网页和客户端通信WebSocket实现双向通信;
消息发送方和消息接收方,根据业务需求确定消息契约,包括消息主题和消息内容,其中消息主题内容为String类型,消息内容为JSON类型;
消息接收方根据消息契约,订阅指定消息主题的消息;
消息发送方根据消息契约生成JSON格式的消息内容,推送至消息契约中约定的消息主题;
消息接收方根据消息契约解析消息内容,进行相应的业务逻辑处理;
所述网页的单例打开功能通过在扩展中定义窗口与页面的映射关系,打开页面时判断当前要打开的页面是否存在于映射关系中,包括:
如果当前要打开的页面不在窗口与页面映射关系中,则调用接口屏蔽层接口实现网页打开并最大化置顶显示,并在映射关系中新增窗口与页面映射关系;
如果当前要打开的页面在窗口与页面映射关系中,则通过页面在映射关系中查找对应的窗口;
如果窗口未最大化置顶显示,激活窗口,并实现最大化置顶显示,否则不进行干预;
所述浏览器大小控制包括:浏览器的高度和宽度控制;
所述浏览器位置控制包括:浏览器距离屏幕左上角的横向距离、纵向距离控制;
所述浏览器状态控制包括:浏览器的最大化、最小化、全屏和还原控制。
CN202110855251.8A 2021-07-28 2021-07-28 一种通用浏览器扩展*** Active CN113569180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110855251.8A CN113569180B (zh) 2021-07-28 2021-07-28 一种通用浏览器扩展***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110855251.8A CN113569180B (zh) 2021-07-28 2021-07-28 一种通用浏览器扩展***

Publications (2)

Publication Number Publication Date
CN113569180A CN113569180A (zh) 2021-10-29
CN113569180B true CN113569180B (zh) 2024-01-26

Family

ID=78168425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110855251.8A Active CN113569180B (zh) 2021-07-28 2021-07-28 一种通用浏览器扩展***

Country Status (1)

Country Link
CN (1) CN113569180B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139276A (zh) * 2011-12-05 2013-06-05 金蝶软件(中国)有限公司 Web页面和图形用户界面客户端双向通信的方法及***
CN104468698A (zh) * 2014-10-11 2015-03-25 杭州盈高科技有限公司 一种跨浏览器的网页通信***及方法
CN105357286A (zh) * 2015-10-20 2016-02-24 中国电子科技集团公司第二十八研究所 一种基于Web的实时消息定向推送方法
CN105407180A (zh) * 2015-12-29 2016-03-16 曙光信息产业(北京)有限公司 服务器的消息推送方法和装置
CN105573733A (zh) * 2014-10-16 2016-05-11 腾讯科技(深圳)有限公司 浏览器与web前端通信的方法、web前端及***
CN112416345A (zh) * 2020-11-16 2021-02-26 中国电子科技集团公司第二十八研究所 一种通用客户端软件集成***
CN112486437A (zh) * 2020-12-18 2021-03-12 武汉点石互动网络科技有限公司 一种用于跨平台跨浏览器在Web应用里进行打印的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170279656A1 (en) * 2013-12-26 2017-09-28 Google Inc. Methods and systems of providing browser cross-page communication using ports

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139276A (zh) * 2011-12-05 2013-06-05 金蝶软件(中国)有限公司 Web页面和图形用户界面客户端双向通信的方法及***
CN104468698A (zh) * 2014-10-11 2015-03-25 杭州盈高科技有限公司 一种跨浏览器的网页通信***及方法
CN105573733A (zh) * 2014-10-16 2016-05-11 腾讯科技(深圳)有限公司 浏览器与web前端通信的方法、web前端及***
CN105357286A (zh) * 2015-10-20 2016-02-24 中国电子科技集团公司第二十八研究所 一种基于Web的实时消息定向推送方法
CN105407180A (zh) * 2015-12-29 2016-03-16 曙光信息产业(北京)有限公司 服务器的消息推送方法和装置
CN112416345A (zh) * 2020-11-16 2021-02-26 中国电子科技集团公司第二十八研究所 一种通用客户端软件集成***
CN112486437A (zh) * 2020-12-18 2021-03-12 武汉点石互动网络科技有限公司 一种用于跨平台跨浏览器在Web应用里进行打印的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Interactive Browser-Based Genomics Data Visualization Tools for Translational and Clinical Laboratory Applications;Thomas M. Pearce 等;《The Journal of Molecular Diagnostics》;985-993 *
基于eBase数据库的数据结构持久化研究与应用;李菡 等;《第二十三届中国数据库学术会议论文集(技术报告篇)》;429-432 *

Also Published As

Publication number Publication date
CN113569180A (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
CN103927163B (zh) 插件框架处理装置及插件***
CN103685269B (zh) 一种web浏览器与服务器进行双向通讯的方法和***
US20150339175A1 (en) Method and device for starting external application program in browser
WO2009043035A4 (en) Network operating system
CN103544059B (zh) 一种应用切换时等待缓冲效果的实现方法及***
CN109032659B (zh) 单页面应用基于配置引用远程页面组件的方法
CN102253855B (zh) 一种传递共享内存的方法和装置
CN108881395B (zh) 消息推送方法、设备、消息管理器及计算机可读存储介质
CN105763619A (zh) 客户端与服务端进行通讯的方法及装置
CN113569180B (zh) 一种通用浏览器扩展***
GB2542562A (en) Private access to HID
US20190114183A1 (en) Terminal Configuration Method and Terminal Based on Provision Protocol for Transmission
CN102662772A (zh) 多语言开发***中实现不同语言间数据通信的方法
CN103927222A (zh) 一种用于客户端与服务端的图形协同处理方法和***
CN114338722B (zh) 云边存储资源管理***及方法、存储介质和电子设备
CN103873452A (zh) 一种利用pc浏览器连接安卓设备的方法及***
JP4432866B2 (ja) Wwwブラウザ、htmlページ共有システムおよびhtmlページ共有方法
CN103067511B (zh) 一种http请求处理的控制方法
CN102970325A (zh) 一种文件上传方法和***
US20120284630A1 (en) Window Proxy
CN105389096A (zh) 基于浏览器的数据交互方法及装置
CN115794095B (zh) 基于JavaScript的虚幻引擎UI开发方法及***
CN103870280A (zh) 基于flex与jsp的网页无缝结合处理方法
US20190182560A1 (en) Browser-based embedded operation method, television set and storage device
WO2023024800A1 (zh) 基于web的多终端设备互动方法、***、终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant