CN113741992A - 一种Java应用程序窗口嵌入浏览器的方法 - Google Patents
一种Java应用程序窗口嵌入浏览器的方法 Download PDFInfo
- Publication number
- CN113741992A CN113741992A CN202010410876.9A CN202010410876A CN113741992A CN 113741992 A CN113741992 A CN 113741992A CN 202010410876 A CN202010410876 A CN 202010410876A CN 113741992 A CN113741992 A CN 113741992A
- Authority
- CN
- China
- Prior art keywords
- browser
- plug
- java
- window
- embedding
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 47
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种Java应用程序窗口嵌入浏览器的方法,其包括:在浏览器中实现至少一个接口插件对象,浏览器加载带有插件标识的网页,插件对象由浏览器进程识别加载;插件对象被浏览器进程加载成功后立即启动一个新进程,并将插件对象的指令数据传递给新进程;新进程接受到插件对象传递的指令数据后,启动Java虚拟机,并通过传递过来的窗口对象来创建Java EmbeddedFrame窗口程序。本发明的Java应用程序窗口嵌入浏览器的方法,其性能、稳定、易用性均有明显提升。
Description
技术领域
本发明涉及浏览器技术领域,尤其涉及一种Java应用程序窗口嵌入浏览器的方法。
背景技术
用户在浏览器页面里会经常使用嵌入的Java程序,与浏览器页面交互通信,其普遍使用了Java Applet技术,不过使用此方案存在以下几个主要的问题。
a)性能较低,在浏览器启动完毕后加载Java Applet时间比单独启动JavaApplication程序Windows平台要多耗时30%,Linux平台要多耗时150%。
b)JRE(Java Runtime Environment)高版本依赖,用户机器上如果装有支持两个JRE版本的Applet程序,这时只能启动一个高版本JRE Applet程序,如要启动低版本Applet程序,需要手工卸载高版本JRE,并需要重新配置。
c)稳定性差,配置繁琐,受操作***浏览器本身环境影响较大,经常会配置失败,无法启动Applet。
因此,结合上述存在的技术问题,有必要提供一种新的技术方案。
发明内容
为解决上述问题,本发明目的设计统一的跨平台技术方案,使用数据交换抽象接口、多进程UI接口、对外调用统一接口。支持Windows、Linux平台Java程序嵌入浏览器的实现,提升性能及方便部署和升级。具体技术方案如下所述:
本发明的一种Java应用程序窗口嵌入浏览器的方法,其包括:
在浏览器中实现至少一个接口插件对象,浏览器加载带有插件标识的网页,插件对象由浏览器进程识别加载;
插件对象被浏览器进程加载成功后立即启动一个新进程,并将插件对象的指令数据传递给新进程;
新进程接受到插件对象传递的指令数据后,启动Java虚拟机,并通过传递过来的窗口对象来创建Java EmbeddedFrame窗口程序。
进一步地,插件对象和启动的新进程之间通过Socket通信和传递数据。
进一步地,所述浏览器为IE浏览器,在IE浏览器中实现IOleInPlaceActiveObject、IOleInPlaceObject及IOleObject接口插件对象。
进一步地,所述浏览器为FireFox浏览器,在FireFox浏览器实现NPAPI接口插件对象。
本发明的Java应用程序窗口嵌入浏览器的方法,具有如下一个或多个有益效果:
(1)本发明的Java应用程序窗口嵌入浏览器的方法,其将Java程序和插件对象分别实现在两个进程中,保证了两个进程的稳定性,不会因其中一个进程的崩溃导致另一个进程的崩溃;
(2)本发明的Java应用程序窗口嵌入浏览器的方法,其在插件对象中实现了IE、FireFox浏览器调用的统一程序集接口(属性、方法、事件),保证了相同的JavaScript代码可在IE、FireFox浏览器上运行,保证了调用接口功能一致;
(3)本发明的Java应用程序窗口嵌入浏览器的方法,其实现数据接口抽象层,分别在浏览器进程插件对象和Java进程中各自实现,通过Socket通信两进程的抽象数据交互,提升了进程之间通信的效率;
(4)本发明的Java应用程序窗口嵌入浏览器的方法,其性能、稳定、易用性均有明显提升。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
结合参考附图及接下来的详细描述,本发明将更容易理解,其中同样的附图标记对应同样的结构部件,其中:
图1是Windows IE嵌入Java程序(永中Office)效果图;
图2是Windows IE嵌入Java程序(永中Office)效果图;
图3是Linux FireFox嵌入Java程序(永中Office)效果图;
图4是本发明Java应用程序窗口嵌入浏览器方法在一个实施例中的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明做出进一步详细的说明。
此处所称的“一个实施例”或“实施例”是指与所述实施例相关的特定特征、结构或特性至少可包含于本发明至少一个实现方式中。在本说明书中不同地方出现的“在一个实施例中”并非必须都指同一个实施例,也不必须是与其他实施例互相排斥的单独或选择实施例。
本发明提出了一种Java应用程序窗口嵌入浏览器的方法,使用数据交换抽象接口、多进程UI接口、对外调用统一接口。支持Windows、Linux平台Java程序嵌入浏览器的实现,提升性能及方便部署和升级。具体步骤如下:
在IE浏览器中实现IOleInPlaceActiveObject,IOleInPlaceObject,IOleObject等接口插件对象,FireFox浏览器实现NPAPI等接口插件对象,浏览器加载带有插件标识的网页时,插件对象由浏览器进程识别加载,
插件对象被浏览器进程加载成功后立即启动一个新的进程,并将插件对象(插件对象所对应的浏览器窗口和其他数据结构)传递给新进程,插件对象进程和启动的新进程之间通过Socket通信、传递数据。新创建进程接受到插件对象传递的指令数据后,分别启动Java虚拟机,并通过传递过来的窗口对象来创建Java EmbeddedFrame窗口程序,实现java窗口嵌入到浏览器窗口,并同时将结果返回给插件对象。
其中,Windows IE嵌入Java程序(永中Office)效果图如图1所示;Windows IE嵌入Java程序(永中Office)效果图如图2所示;Linux FireFox嵌入Java程序(永中Office)效果图如图3所示;本发明Java应用程序窗口嵌入浏览器方法在一个实施例中的流程示意图如图4所示。
在一个实施例中,将Java程序和插件对象分别实现在两个进程中,保证了两个进程的稳定性,不会因其中一个进程的崩溃导致另一个进程的崩溃。
在一个实施例中,在插件对象中实现了IE、FireFox浏览器调用的统一程序集接口(属性、方法、事件),保证了相同的JavaScript代码可在IE、FireFox浏览器上运行,保证了调用接口功能一致。
在一个实施例中,实现数据接口抽象层,分别在浏览器进程插件对象和Java进程中各自实现,通过Socket通信两进程的抽象数据交互,提升了进程之间通信的效率。
实现本技术方案测试后,性能、稳定、易用性均有明显提升,对比测试加载相同的Java程序(永中Office)Windows平台加载速度比Applet提升20%,Linux平台加载速度比Applet提升125%。即装即用,不需要用户手工配置。不受操作***浏览器环境及其它版本JRE影响。
以在浏览器页面调用永中Office(java程序)查找为例说明,程序代码如下:
其中,执行代码document.getElementById("office")后返回ID标识为Office的插件对象,插件对象实现了Offie接口程序集(属性,方法,事件),执行const doc=yozooffice.Application.ActiveDocument语句时,接口调用层调用插件对象Office程序集的Application属性,由插件对象的数据抽象层处理后通过Socket转发到永中Office程序(Java进程),由Java进程端的抽象数据层处理后调用对应的Java程序Application属性接口,并将结果通过Java抽象数据层处理后由Socket转发到插件对象进程处理,ActiveDocument属性如上操作。
执行doc.Application.Selection.Find.Execute(text,false,false,false,false,true,true,false,false)语句后插件对象数据抽象层将方法调用名称和参数"千里之行"统一处理后转发到Java实例进程,Java实例进程端的数据抽象层处理后接口实现层调用对应的Java程序Execute接口,在功能实现层永中Office(Java程序)文本中包含有"千里之行"关键字高亮显示。
上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做出的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。
Claims (4)
1.一种Java应用程序窗口嵌入浏览器的方法,其特征在于,其包括:
在浏览器中实现至少一个接口插件对象,浏览器加载带有插件标识的网页,插件对象由浏览器进程识别加载;
插件对象被浏览器进程加载成功后立即启动一个新进程,并将插件对象的指令数据传递给新进程;
新进程接受到插件对象传递的指令数据后,启动Java虚拟机,并通过传递过来的窗口对象来创建Java EmbeddedFrame窗口程序。
2.根据权利要求1所述的Java应用程序窗口嵌入浏览器的方法,其特征在于,插件对象和启动的新进程之间通过Socket通信和传递数据。
3.根据权利要求1所述的Java应用程序窗口嵌入浏览器的方法,其特征在于,所述浏览器为IE浏览器,在IE浏览器中实现IOleInPlaceActiveObject、IOleInPlaceObject及IOleObject接口插件对象。
4.根据权利要求1所述的Java应用程序窗口嵌入浏览器的方法,其特征在于,所述浏览器为FireFox浏览器,在FireFox浏览器实现NPAPI接口插件对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410876.9A CN113741992A (zh) | 2020-05-15 | 2020-05-15 | 一种Java应用程序窗口嵌入浏览器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410876.9A CN113741992A (zh) | 2020-05-15 | 2020-05-15 | 一种Java应用程序窗口嵌入浏览器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113741992A true CN113741992A (zh) | 2021-12-03 |
Family
ID=78723426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010410876.9A Withdrawn CN113741992A (zh) | 2020-05-15 | 2020-05-15 | 一种Java应用程序窗口嵌入浏览器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741992A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567065A (zh) * | 2009-05-26 | 2009-10-28 | 杭州世导科技有限公司 | 跨平台的文档在线编辑***及其方法 |
CN103049320A (zh) * | 2012-12-17 | 2013-04-17 | 广州市动景计算机科技有限公司 | 在浏览器中启动外部应用程序的方法和装置 |
CN103064738A (zh) * | 2013-01-15 | 2013-04-24 | 珠海金山办公软件有限公司 | Linux下本地应用程序窗体嵌入浏览器的方法及*** |
CN110569076A (zh) * | 2018-05-17 | 2019-12-13 | 长沙博为软件技术股份有限公司 | 一种基于嵌入浏览器的控制台应用程序并实现插件化的方法 |
-
2020
- 2020-05-15 CN CN202010410876.9A patent/CN113741992A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567065A (zh) * | 2009-05-26 | 2009-10-28 | 杭州世导科技有限公司 | 跨平台的文档在线编辑***及其方法 |
CN103049320A (zh) * | 2012-12-17 | 2013-04-17 | 广州市动景计算机科技有限公司 | 在浏览器中启动外部应用程序的方法和装置 |
CN103064738A (zh) * | 2013-01-15 | 2013-04-24 | 珠海金山办公软件有限公司 | Linux下本地应用程序窗体嵌入浏览器的方法及*** |
CN110569076A (zh) * | 2018-05-17 | 2019-12-13 | 长沙博为软件技术股份有限公司 | 一种基于嵌入浏览器的控制台应用程序并实现插件化的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904361B2 (en) | Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation | |
CN107861713B (zh) | 数据调用方法、装置及计算机可读存储介质 | |
CN107688529B (zh) | 组件调试方法和装置 | |
CN107992308B (zh) | 一种安卓终端应用程序的插件化管理方法 | |
EP2168050B1 (en) | Running add-on components in virtual environments | |
CN107967139B (zh) | 游戏的热更新方法及装置 | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
EP2444892A1 (en) | Method and device for generating software installation packet | |
WO2016177341A1 (zh) | 接口调用方法、装置及终端 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN106055368B (zh) | 应用更新方法和装置 | |
JP2005518015A5 (zh) | ||
CN103064680B (zh) | 浏览器中插件的播放方法及装置 | |
JP7106001B2 (ja) | サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム | |
CN109299331B (zh) | Air展现超文本标记语言HTML5页面的方法及装置 | |
CN113420268B (zh) | 水印添加方法、装置、设备及存储介质 | |
CN115033235A (zh) | 基于低代码开发平台进行web页面灵活复用的***及方法 | |
CN108845800B (zh) | 一种组件扩展功能的实现方法、装置、设备及存储介质 | |
CN105897902B (zh) | 一种通过浏览器启动本地应用的方法及*** | |
KR101117165B1 (ko) | 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛 | |
CN109408256B (zh) | 应用调用方法和装置 | |
US20210117170A1 (en) | Wrapping method, registration method, device, and rendering apparatus | |
CN113268277A (zh) | 一种基于web的客户端访问方法及终端设备 | |
CN103077047B (zh) | 一种插件播放方法及装置 | |
JP2006276939A (ja) | 仮想マシンのプログラム起動方法およびクライアントサーバシステム |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211203 |
|
WW01 | Invention patent application withdrawn after publication |