CN110895481A - 桌面应用的渲染方法、装置和系统 - Google Patents
桌面应用的渲染方法、装置和系统 Download PDFInfo
- Publication number
- CN110895481A CN110895481A CN201811070072.8A CN201811070072A CN110895481A CN 110895481 A CN110895481 A CN 110895481A CN 201811070072 A CN201811070072 A CN 201811070072A CN 110895481 A CN110895481 A CN 110895481A
- Authority
- CN
- China
- Prior art keywords
- rendering
- browser engine
- desktop application
- desktop
- request
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 345
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000003068 static effect Effects 0.000 claims description 34
- 238000013515 script Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 8
- 238000009434 installation Methods 0.000 abstract description 48
- 230000015654 memory Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 229910052804 chromium Inorganic materials 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种桌面应用的渲染方法、装置和系统。其中,该方法包括:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染渲染请求对应的界面。本发明解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
Description
技术领域
本发明涉及浏览器领域,具体而言,涉及一种桌面应用的渲染方法、装置和系统。
背景技术
基于QT、MFC、C#等与平台强的相关GUI(Graphical User Interface,图形用户接口)开发方案,在进行不同平台移植的时候,往往需要进行源码修改,甚至不同平台的程序要完全重写。例如:同一个native应用如果要支持安卓和ios两种平台,就需要用java和object-c两种语言实现两次。
目前的基于webkit的跨平台桌面应用解决方案很多,但是都会单独运行一个webkit内核,即每个桌面应用的安装包内都包含一个webkit内核,从而使得这些方案都存在如下缺陷:(1)每个实例单独运行一个webkit内核,导致运算浪费资源,且由于前端设备运行数量较多的webkit内核,导致前端设备运行效率低;(2)应用程序中与业务无关的部分比例太重;(3)桌面应用的程序包安装后体积较大。
针对现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种桌面应用的渲染方法、装置和系统,以至少解决现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染方法,包括:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染上述渲染请求对应的界面。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染方法,包括:运行在设备上的至少两个桌面应用程序向运行在设备上的同一个浏览器引擎对应的插件模块发送渲染请求,其中,插件模块用于将至少两个桌面应用程序发送的渲染请求发送至浏览器引擎;至少两个桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染方法,包括:运行在设备上的桌面应用程序向目标浏览器引擎发送渲染请求,其中,目标浏览器引擎为运行在设备上的浏览器的浏览器引擎,目标浏览器引擎通过对应的插件模块接收任意一个桌面应用程序发送的渲染请求;桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染方法,包括:运行在设备上的插件模块接收运行在设备上的任意一个桌面应用程序发送的渲染请求,其中,插件模块允许与多个桌面应用程序通信;插件模块将渲染请求发送至浏览器引擎,其中,浏览器引擎用于根据渲染请求渲染处于渲染请求对应的界面。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染系统,包括:运行在设备上的桌面应用程序,用于向浏览器引擎发送渲染请求;运行在设备上的浏览器引擎,用于通过插件模块接收多个桌面应用程序发送的渲染请求,并根据渲染请求,获取渲染请求对应的渲染数据,其中,插件模块用于与多个桌面应用程序通信。
根据本发明实施例的一个方面,提供了一种桌面应用的渲染装置,包括:接收模块,用于至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;获取模块,用于浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;渲染模块,用于浏览器引擎根据渲染数据渲染渲染请求对应的界面。
根据本发明实施例的一个方面,提供了一种存储介质,其中,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染渲染请求对应的界面。
根据本发明实施例的一个方面,提供了一种处理器,其中,处理器用于运行程序,其中,程序运行时执行如下步骤:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染渲染请求对应的界面。
在本发明实施例中,通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了一种用于实现桌面应用的渲染方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本发明实施例1的一种桌面应用的渲染方法的流程图;
图3是根据本申请实施例1的一种桌面应用的渲染方法的信息交互图;
图4是根据本申请实施例2的一种桌面应用的渲染方法的流程图;
图5是根据本申请实施例3的一种桌面应用的渲染方法的流程图;
图6是根据本申请实施例4的一种桌面应用的渲染方法的流程图;
图7是根据本申请实施例5的一种桌面应用的渲染装置的示意图;
图8是根据本申请实施例6的一种桌面应用的渲染装置的示意图;
图9是根据本申请实施例7的一种桌面应用的渲染装置的示意图;
图10是根据本申请实施例8的一种桌面应用的渲染装置的示意图;以及
图11是根据本发明实施例10的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
native应用:native应用是一种基于智能手机本地操作系统,如iOS、Android、WP,并使用原生程式编写运行的第三方程序,也叫本地APP。
webkit:webkit是一个开源的浏览器引擎。它的优势在于高效稳定,兼容性好,且源码结构清晰,易于维护。
Chromium:Chromium是由Google主导开发的浏览器。
render树:渲染树,用于计算可见元素的布局,并作为将像素渲染到显示设备的过程的输入。
CSS:Cascading Style Sheets,层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言。CSS不仅可以静态的修饰网页,还可以配合各种脚本语音动态地对网页各元素进行格式化。CSS能够对网页中元素位置的排版进行像素极精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
DOM:Document Object Model,文档对象模型,它将网页中各个元素都作为对象,从而使网页中的元素可以被计算机语言获取或编辑。DOM树即为浏览器解析HTML文件形成的数据结构。
实施例1
根据本发明实施例,还提供了一种桌面应用的渲染方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现桌面应用的渲染方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的()方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的桌面应用的渲染方法。图2是根据本发明实施例1的一种桌面应用的渲染方法的流程图。
步骤S21,至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块。
具体的,上述浏览器引擎负责对网页语法(例如:HTML、Javascript)进行解释并进行界面的渲染;插件模块可以为单独开发的插件,也可以是直接在浏览器引擎中开发的固定功能模块,用于使浏览器引擎与所有运行在设备上的桌面应用程序都能够进行通信;桌面应用程序用于表示即不依赖操作系统,也不依赖硬件环境的桌面应用程序,即GUI程序。
上述浏览器引擎、插件模块以及桌面应用程序可以运行在同一个设备上。在浏览器引擎执行步骤S21之前,用户需要在设备上安装能够被多个桌面应用共用的浏览器引擎。
现有技术中,桌面应用程序的安装包中包括浏览器引擎,每个桌面应用程序使用其安装包内的浏览器引擎进行渲染,在上述方案中,为了实现浏览器引擎的复用,即使用同一个浏览器引擎对多个桌面应用程序的界面进行渲染,需要多个桌面应用程序均向同一个浏览器引擎发送渲染请求,在这种情况下,由于浏览器引擎与多个桌面应用程序之间无法直接进行交互,因此在设备上部署浏览器引擎对应的插件模块,作为桌面应用程序与浏览器引擎之间的桥梁,来获取桌面应用程序发出的渲染请求。
当桌面应用程序启动,使桌面应用的界面出现时,或桌面应用的界面发生变化时,桌面应用程序都需要发出渲染请求,桌面应用的界面变化时机是由桌面应用程序本身确定,有些变化是桌面应用程序自身控制的,有些变化是通过用户操作桌面应用引起的。
在一种可选的实施例中,用户对桌面应用进行操作,从而使桌面应用程序生成与用户的操作对应的渲染请求,该渲染请求用于请求浏览器引擎渲染与用户的操作对应的界面。上述用户的操作可以为发出数据请求,浏览器引擎用于根据渲染请求中包括的用户的数据请求,获取对应的资源,并根据对应的资源进行渲染。
还在一种的实施例中,上述浏览器引擎可以为Chromium的引擎WebKit。
步骤S23,浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据。
具体的,上述渲染数据用于表示浏览器引擎在根据渲染请求进行渲染时所需要的数据,不同渲染请求对应的渲染数据不同。
在一种可选的实施例中,渲染数据包括以静态文件的形式存储的静态资源,以及向应用端服务器请求得到的动态数据,获取渲染请求对应的渲染数据的方式可以包括:从浏览器对应的前端服务器获取静态资源,并向应用端服务器请求动态数据。
步骤S25,浏览器引擎根据渲染数据渲染上述渲染请求对应的界面。
在上述步骤S25中,浏览器引擎在接收到插件模块发送的渲染请求后,根据接收到的渲染请求,进行界面的渲染。
在一种可选的实施例中,用户操作桌面应用向插件模块发出数据请求,浏览器引擎根据插件模块发送的包括数据请求的渲染请求,向桌面应用对应的应用端服务器请求对应的数据,桌面应用对应的应用端服务器向浏览器引擎返回对应的HTML文件,浏览器引擎解析应用端服务器返回的HTML代码,将HTML代码转换为一个DOM树,在构建DOM树的过程中,将各标记逐个转化成对DOM树上的节点,同时也会解析外部CSS文件以及样式元素中的样式数据,从而生成render树,在render树构建完成后,确定每个节点出现在屏幕上的确切位置,从而将DOM树渲染成为可视化图像,即界面。
需要说明的是,由于浏览器引擎需要对设备上不同的桌面应用程序进行渲染,因此浏览器前端服务器中存储的静态资源需要包括多种桌面应用程序对应的静态资源。
目前的桌面操作系统中,浏览器(如firefox,chrome,safari)通常是必备软件,和内置webkit引擎的桌面应用所使用的浏览器引擎是同质的,本申请上述实施例通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
作为一种可选的实施例,浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据,包括:浏览器引擎根据渲染请求获取对应的静态资源。
具体的,上述静态资源可以预先存储在浏览器对应的前端服务器中,在浏览器引擎接收到插件模块发送的渲染请求后,从浏览器对应的前端服务器获取静态资源。
在一种可选的实施例中,当用户打开一个新的界面,渲染时需要应用提供界面的HTML定义,其中会包含CSS样式表,各种界面中包含的javascript脚本,图片,小视频等,这些资源都是以静态文件的形式存在,是渲染界面必须的资源。
每个桌面应用程序所对应的静态资源可以不同,静态资源的地址可以是URL(Uniform Resource Locator,统一资源定位符),该URL可以指向本地文件,也可以指向网络上的某个文件,浏览器引擎根据渲染请求获得用于指向静态资源的URL,然后根据URL获取桌面应用程序对应的静态资源。
作为一种可选的实施例,浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据,包括:浏览器引擎向桌面应用程序对应的服务端发送动态数据请求;浏览器引擎接收服务端返回的动态数据。
具体的,上述服务端用于表示桌面应用的远端服务器,动态数据请求用于向桌面应用对应的服务器请求动态数据,该动态数据可以是对桌面应用的界面进行渲染时所需要的数据,例如,用户操作桌面应用时所请求的数据等。
作为一种可选的实施例,浏览器引擎向桌面应用程序对应的服务端发送动态数据请求,包括:浏览器引擎根据静态资源中的超文本标记语言定义,获取脚本资源,其中,超文本标记语言定义中包括脚本资源的地址;浏览器引擎根据脚本资源确定动态数据请求;浏览器引擎将动态数据请求发送至桌面应用程序对应的服务端。
具体的,静态资源中包括HTML(超文本标记语言)定义,HTML定义中包括Javascript脚本的地址,浏览器引擎根据HTML定义中包括Javascript脚本的地址获取到Javascript脚本。Javascript脚本通过操作HTML,并通过http、https、websocket等协议来进行数据请求,请求数据的内容根据桌面引用程序的需要而定,包括渲染需要的数据,或者是用户操作请求返回的数据等。
作为一种可选的实施例,浏览器引擎根据渲染数据渲染上述渲染请求对应的界面,包括:浏览器引擎根据静态资源和动态数据渲染得到渲染请求对应的界面。
具体的,浏览器引擎通过获取静态文件得到CSS样式表,解析CSS得到CSSOM,在浏览器引擎获取的静态文件中还包括HTML定义,浏览器引擎解析HTML定义,并通过解析HTML创建DOM树,在创建DOM树的过程中,请求节点对应的数据,该过程即为浏览器引起请求动态数据的过程,动态数据即用于确定DOM树中节点对应的内容。
浏览器引擎根据DOM树和CSSOM构造Render树,并确定每个节点在屏幕中的位置,再通过遍历Render树,调用操作系统的绘制API(Application Programming Interface,应用程序编程接口)进行绘制,即可对界面进行渲染。
作为一种可选的实施例,在浏览器引擎根据渲染数据渲染上述渲染请求对应的界面之后,上述方法还包括:浏览器引擎将渲染得到的界面返回至桌面应用程序,通过桌面应用程序将界面显示在应用端设备上。
在浏览器引擎渲染得到界面之后,返回至桌面应用程序,桌面应用程序将界面显示在应用端设备上。
在一种可选的实施例中,应用端设备上,安装有浏览器,以及浏览器引擎对应的插件模块。用户通过操作运行在应用端设备上的桌面应用,发出渲染请求,桌面应用程序将渲染请求发送至插件模块,插件模块将渲染请求发送至浏览器引擎。浏览器引擎根据渲染请求渲染对应的界面,并将界面返回至应用端设备上的桌面引用程序,桌面应用程序将界面显示于应用端设备,从而完成了此次渲染过程。
图3是根据本申请实施例1的一种桌面应用的渲染方法的信息交互图,在该示例中,浏览器引擎plugin(插件)即为上述插件模块,桌面应用程序、浏览器引擎plugin和浏览器引擎均运行在同一个设备上,业务服务运行在桌面应用程序对应的远端服务器上,下面结合图3所示,对本申请中桌面应程序的渲染方法进行说明:
S31,桌面应用程序向浏览器引擎plugin发送渲染请求。
具体的,上述渲染请求在桌面应用程序需要改变当前显示界面时发出,例如,可以根据用户向桌面应用程序发送的数据请求生成。桌面应用程序在接收到用户发送的数据请求后,需要根据用户所请求的数据,生成对应的渲染请求。
需要说明的是,上述浏览器引擎plugin为运行在设备上的一个浏览器引擎对应的plugin,由于浏览器引擎本身难以和多个桌面应用程序进行交互,因此通过浏览器引擎plugin来接收多个桌面应用程序发送的渲染请求,从而实现了一个浏览器引擎接收前端设备上所有桌面应用程序的渲染请求的目的。
S32,浏览器引擎plugin将渲染请求发送至浏览器引擎。
浏览器引擎plugin作为桌面应用请求和浏览器引擎之间的桥梁,将接收的桌面应用程序发送的渲染请求转发至浏览器引擎,由浏览器引擎对渲染请求进行渲染处理,并且在浏览器引擎接收到渲染请求时,获取到了渲染请求中包含的前端资源元数据。
S33,浏览器引擎获取渲染请求对应的静态资源。
浏览器引擎根据渲染请求中的前端资源元数据,获取渲染请求对应的静态资源。
S34,浏览器向业务服务发送动态数据请求。
具体的,javascript是一种脚本语言,可以操作HTML,也可以通过http、https、websocket这些协议来进行动态数据请求,请求数据的内容依程序需要而定,包括浏览器渲染所需的数据,或者是用户操作请求返回的数据等。上述步骤S33获取到的静态资源中包括javascript资源,javascript资源定义在静态资源的HTML中,当浏览器引擎获取到静态资源中的HTML后,会根据HTML中的地址获取javascript资源,从而通过javascript资源发起动态数据请求。
S35,浏览器引擎接收业务服务返回的动态数据。
S36,浏览器引擎将渲染的界面返回至桌面应用程序。
浏览器引擎在得到静态资源和动态数据后,将静态资源和动态数据进行叠加,并进行渲染,从而得到渲染后的界面,再将界面返回至桌面应用程序,由桌面应用程序对界面进行显示。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种桌面应用的渲染方法,图4是根据本申请实施例2的一种桌面应用的渲染方法的流程图,如图4所示,该方法包括:
步骤S41,运行在设备上的至少两个桌面应用程序向运行在设备上的同一个浏览器引擎对应的插件模块发送渲染请求,其中,插件模块用于将至少两个桌面应用程序发送的渲染请求发送至浏览器引擎。
上述浏览器引擎、插件模块以及桌面应用程序可以运行在同一个设备上。在浏览器引擎执行步骤S41之前,用户需要在设备上安装能够被多个桌面应用共用的浏览器引擎。
具体的,桌面应用程序用于表示即不依赖操作系统,也不依赖硬件环境的桌面应用程序,即GUI程序;上述浏览器引擎负责对网页语法(例如:HTML、Javascript)进行解释并进行界面的渲染;插件模块可以为单独开发的插件,也可以是直接在浏览器引擎中开发的固定功能模块,用于使浏览器引擎与所有运行在设备上的桌面应用程序都能够进行通信。
在上述方案中,运行在设备上的多个桌面应用程序中,至少两个通过预先安装在设备上的浏览器引擎进行渲染,该至少两个桌面应用程序向浏览器引擎发送渲染请求的时刻可以相同,也可以不同。
现有技术中,桌面应用程序的安装包中包括浏览器引擎,每个桌面应用程序使用其安装包内的浏览器引擎进行渲染,在上述方案中,为了实现浏览器引擎的复用,即使用同一个浏览器引擎对多个桌面应用程序的界面进行渲染,需要多个桌面应用程序均向同一个浏览器引擎发送渲染请求,在这种情况下,由于浏览器引擎与多个桌面应用程序之间无法直接进行交互,因此在设备上部署浏览器引擎对应的插件模块,作为桌面应用程序与浏览器引擎之间的桥梁,来获取桌面应用程序发出的渲染请求。
当桌面应用程序启动,使桌面应用的界面出现时,或桌面应用的界面发生变化时,桌面应用程序都需要发出渲染请求,桌面应用的界面变化时机是由桌面应用程序本身确定,有些变化是桌面应用程序自身控制的,有些变化是通过用户操作桌面应用引起的。
在一种可选的实施例中,用户对桌面应用进行操作,从而使桌面应用程序生成与用户的操作对应的渲染请求,该渲染请求用于请求浏览器引擎渲染与用户的操作对应的界面。上述用户的操作可以为发出数据请求,浏览器引擎用于根据渲染请求中包括的用户的数据请求,获取对应的资源,并根据对应的资源进行渲染。
还在一种的实施例中,上述浏览器引擎可以为浏览器Chromium的浏览器引擎WebKit。
步骤S43,至少两个桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
在上述方案中,浏览器引擎可以根据渲染请求,获取渲染请求对应的渲染数据,在根据渲染数据渲染生成渲染请求对应的界面。
桌面应用程序接收到浏览器引擎返回的界面,可以将其显示在用户端设备。
目前的桌面操作系统中,浏览器(如firefox,chrome,safari)通常是必备软件,和内置webkit引擎的桌面应用所使用的浏览器引擎是同质的,本申请上述实施例通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
实施例3
根据本发明实施例,还提供了一种桌面应用的渲染方法,图5是根据本申请实施例3的一种桌面应用的渲染方法的流程图,如图5所示,该方法包括:
步骤S51,运行在设备上的桌面应用程序向目标浏览器引擎发送渲染请求,其中,目标浏览器引擎为运行在设备上的浏览器的引擎,目标浏览器引擎通过对应的插件模块接收任意一个桌面应用程序发送的渲染请求。
上述浏览器引擎、插件模块以及桌面应用程序可以运行在同一个设备上。在浏览器引擎执行步骤S51之前,用户需要在设备上安装能够被多个桌面应用共用的浏览器引擎。
具体的,桌面应用程序用于表示即不依赖操作系统,也不依赖硬件环境的桌面应用程序,即GUI程序;上述浏览器引擎负责对网页语法(例如:HTML、Javascript)进行解释并进行界面的渲染;插件模块可以为单独开发的插件,也可以是直接在浏览器引擎中开发的固定功能模块,用于使浏览器引擎与所有运行在设备上的桌面应用程序都能够进行通信。
在上述方案中,运行在设备上的多个桌面应用程序中,任意一个都可以通过预先安装在设备上的浏览器引擎进行渲染。
现有技术中,桌面应用程序的安装包中包括浏览器引擎,每个桌面应用程序使用其安装包内的浏览器引擎进行渲染,在上述方案中,为了实现浏览器引擎的复用,即使用同一个浏览器引擎对多个桌面应用程序的界面进行渲染,需要多个桌面应用程序均向同一个浏览器引擎发送渲染请求,在这种情况下,由于浏览器引擎与多个桌面应用程序之间无法直接进行交互,因此在设备上部署浏览器引擎对应的插件模块,作为桌面应用程序与浏览器引擎之间的桥梁,来获取桌面应用程序发出的渲染请求。
当桌面应用程序启动,使桌面应用的界面出现时,或桌面应用的界面发生变化时,桌面应用程序都需要发出渲染请求,桌面应用的界面变化时机是由桌面应用程序本身确定,有些变化是桌面应用程序自身控制的,有些变化是通过用户操作桌面应用引起的。
在一种可选的实施例中,用户对桌面应用进行操作,从而使桌面应用程序生成与用户的操作对应的渲染请求,该渲染请求用于请求浏览器引擎渲染与用户的操作对应的界面。上述用户的操作可以为发出数据请求,浏览器引擎用于根据渲染请求中包括的用户的数据请求,获取对应的资源,并根据对应的资源进行渲染。
还在一种的实施例中,上述浏览器引擎可以为浏览器Chromium的浏览器引擎WebKit。
步骤S53,桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
在上述方案中,浏览器引擎可以根据渲染请求,获取渲染请求对应的渲染数据,在根据渲染数据渲染生成渲染请求对应的界面。
桌面应用程序接收到浏览器引擎返回的界面,可以将其显示在用户端设备。
目前的桌面操作系统中,浏览器(如firefox,chrome,safari)通常是必备软件,和内置webkit引擎的桌面应用所使用的浏览器引擎是同质的,本申请上述实施例通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
实施例4
根据本发明实施例,还提供了一种桌面应用的渲染方法,图6是根据本申请实施例4的一种桌面应用的渲染方法的流程图,如图6所示,该方法包括:
步骤S61,运行在设备上的插件模块接收运行在设备上的任意一个桌面应用程序发送的渲染请求。
具体的,上述插件模块允许与多个桌面应用程序通信,可以为单独开发的插件,也可以是直接在浏览器引擎中开发的固定功能模块,用于使浏览器引擎与所有运行在设备上的桌面应用程序都能够进行通信;上述浏览器引擎负责对网页语法(例如:HTML、Javascript)进行解释并进行界面的渲染;桌面应用程序用于表示即不依赖操作系统,也不依赖硬件环境的桌面应用程序,即GUI程序。
上述浏览器引擎、插件模块以及桌面应用程序可以运行在同一个设备上。在浏览器引擎执行步骤S61之前,用户需要在设备上安装能够被多个桌面应用共用的浏览器引擎。
现有技术中,桌面应用程序的安装包中包括浏览器引擎,每个桌面应用程序使用其安装包内的浏览器引擎进行渲染,在上述方案中,为了实现浏览器引擎的复用,即使用同一个浏览器引擎对多个桌面应用程序的界面进行渲染,需要多个桌面应用程序均向同一个浏览器引擎发送渲染请求,在这种情况下,由于浏览器引擎与多个桌面应用程序之间无法直接进行交互,因此在设备上部署浏览器引擎对应的插件模块,作为桌面应用程序与浏览器引擎之间的桥梁,来获取桌面应用程序发出的渲染请求。
当桌面应用程序启动,使桌面应用的界面出现时,或桌面应用的界面发生变化时,桌面应用程序都需要发出渲染请求,桌面应用的界面变化时机是由桌面应用程序本身确定,有些变化是桌面应用程序自身控制的,有些变化是通过用户操作桌面应用引起的。
在一种可选的实施例中,用户对桌面应用进行操作,从而使桌面应用程序生成与用户的操作对应的渲染请求,该渲染请求用于请求浏览器引擎渲染与用户的操作对应的界面。上述用户的操作可以为发出数据请求,浏览器引擎用于根据渲染请求中包括的用户的数据请求,获取对应的资源,并根据对应的资源进行渲染。
还在一种的实施例中,上述浏览器引擎可以为浏览器Chromium的浏览器引擎WebKit。
步骤S63,插件模块将渲染请求发送至浏览器引擎,其中,浏览器引擎用于根据渲染请求渲染对应的界面。
在上述方案中,浏览器引擎用于根据渲染请求渲染处于渲染请求对应的界面,可以是浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据,并根据渲染数据生成渲染请求对应的界面。
实施例5
根据本发明实施例,还提供了一种用于实施上述实施例1中的桌面应用的渲染方法的桌面应用的渲染装置,图7是根据本申请实施例5的一种桌面应用的渲染装置的示意图,如图7所示,该装置700包括:
接收模块702,用于至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块。
获取模块704,用于浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据。
渲染模块706,用于浏览器引擎根据渲染数据渲染上述渲染请求对应的界面。
此处需要说明的是,上述接收模块702、获取模块704和渲染模块706对应于实施例1中的步骤S21至步骤S25,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,获取模块包括:获取子模块,用于浏览器引擎根据渲染请求获取对应的静态资源。
作为一种可选的实施例,获取模块包括:发送子模块,用于浏览器引擎向桌面应用程序对应的服务端发送动态数据请求;接收子模块,用于浏览器引擎接收服务端返回的动态数据。
作为一种可选的实施例,发送子模块包括:获取单元,用于浏览器引擎根据静态资源中的超文本标记语言定义,获取脚本资源,其中,超文本标记语言定义中包括脚本资源的地址;确定单元,用于浏览器引擎根据脚本资源确定动态数据请求;发送单元,用于浏览器引擎将动态数据请求发送至桌面应用程序对应的服务端。
作为一种可选的实施例,渲染模块包括:渲染子模块,用于浏览器引擎根据静态资源和动态数据渲染得到渲染请求对应的界面。
作为一种可选的实施例,上述装置还包括:返回模块,用于在浏览器引擎根据渲染数据渲染上述渲染请求对应的界面之后,浏览器引擎将渲染得到的界面返回至桌面应用程序,通过桌面应用程序将界面显示在应用端设备上。
实施例6
根据本发明实施例,还提供了一种用于实施上述实施例2中的桌面应用的渲染方法的桌面应用的渲染装置,图8是根据本申请实施例6的一种桌面应用的渲染装置的示意图,如图8所示,该装置800包括:
第一发送模块802,用于运行在设备上的至少两个桌面应用程序向运行在设备上的同一个浏览器引擎对应的插件模块发送渲染请求,其中,插件模块用于将至少两个桌面应用程序发送的渲染请求发送至浏览器引擎。
第一接收模块804,用于至少两个桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
此处需要说明的是,上述第一发送模块802和第一接收模块804对应于实施例2中的步骤S41至步骤S43,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
实施例7
根据本发明实施例,还提供了一种用于实施上述实施例3中的桌面应用的渲染方法的桌面应用的渲染装置,图9是根据本申请实施例7的一种桌面应用的渲染装置的示意图,如图9所示,该装置900包括:
第二发送模块902,用于运行在设备上的桌面应用程序向目标浏览器引擎发送渲染请求,其中,目标浏览器引擎为运行在设备上的浏览器的引擎,目标浏览器引擎通过对应的插件模块接收任意一个桌面应用程序发送的渲染请求;
第二接收模块904,用于桌面应用程序接收浏览器引擎根据渲染请求渲染的界面。
此处需要说明的是,上述第二发送模块902和第二接收模块904对应于实施例3中的步骤S51至步骤S53,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
实施例8
根据本发明实施例,还提供了一种用于实施上述实施例4中的桌面应用的渲染方法的桌面应用的渲染装置,图10是根据本申请实施例8的一种桌面应用的渲染装置的示意图,如图10所示,该装置100包括:
第三接收模块102,用于运行在设备上的插件模块接收运行在设备上的任意一个桌面应用程序发送的渲染请求。
第三发送模块104,用于插件模块将渲染请求发送至浏览器引擎,其中,浏览器引擎用于根据渲染请求渲染对应的界面。
此处需要说明的是,上述第三接收模块102和第三发送模块104对应于实施例4中的步骤S61至步骤S73,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,插件模块允许与多个所述桌面应用程序通信。
实施例9
根据本发明实施例,还提供了一种桌面应用的渲染系统,该系统包括:
运行在设备上的桌面应用程序,用于向浏览器引擎发送渲染请求。
具体的,上述桌面应用程序用于表示即不依赖操作系统,也不依赖硬件环境的桌面应用程序,即GUI程序。
运行在设备上的浏览器引擎,用于通过插件模块接收多个桌面应用程序发送的渲染请求,并根据渲染请求,获取渲染请求对应的渲染数据,其中,插件模块用于与多个桌面应用程序通信。
具体的,上述浏览器引擎负责对网页语法(例如:HTML、Javascript)进行解释并进行界面的渲染;插件模块可以为单独开发的插件,也可以是直接在浏览器引擎中开发的固定功能模块,用于使浏览器引擎与所有运行在设备上的桌面应用程序都能够进行通信。
上述浏览器引擎、插件模块以及桌面应用程序可以运行在同一个设备上。在浏览器引擎执行步骤S21之前,用户需要在设备上安装能够被多个桌面应用共用的浏览器引擎。
现有技术中,桌面应用程序的安装包中包括浏览器引擎,每个桌面应用程序使用其安装包内的浏览器引擎进行渲染,在上述方案中,为了实现浏览器引擎的复用,即使用同一个浏览器引擎对多个桌面应用程序的界面进行渲染,需要多个桌面应用程序均向同一个浏览器引擎发送渲染请求,在这种情况下,由于浏览器引擎与多个桌面应用程序之间无法直接进行交互,因此在设备上部署浏览器引擎对应的插件模块,作为桌面应用程序与浏览器引擎之间的桥梁,来获取桌面应用程序发出的渲染请求。
目前的桌面操作系统中,浏览器(如firefox,chrome,safari)通常是必备软件,和内置webkit引擎的桌面应用所使用的浏览器引擎是同质的,本申请上述实施例通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
实施例10
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染上述渲染请求对应的界面。
可选地,图11是根据本发明实施例10的一种计算机终端的结构框图。如图11所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1102、存储器1104、以及外设装置1106。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,浏览器引擎包括用于与多个桌面应用程序通信的插件模块;浏览器引擎根据渲染请求,获取渲染请求对应的渲染数据;浏览器引擎根据渲染数据渲染上述渲染请求对应的界面。
可选的,上述处理器还可以执行如下步骤的程序代码:浏览器引擎根据渲染请求获取对应的静态资源。
可选的,上述处理器还可以执行如下步骤的程序代码:浏览器引擎向桌面应用程序对应的服务端发送动态数据请求;浏览器引擎接收服务端返回的动态数据。
可选的,上述处理器还可以执行如下步骤的程序代码:浏览器引擎根据静态资源中的超文本标记语言定义,获取脚本资源,其中,超文本标记语言定义中包括脚本资源的地址;浏览器引擎根据脚本资源确定动态数据请求;浏览器引擎将动态数据请求发送至桌面应用程序对应的服务端。
可选的,上述处理器还可以执行如下步骤的程序代码:浏览器引擎根据静态资源和动态数据渲染得到渲染请求对应的界面。
可选的,上述处理器还可以执行如下步骤的程序代码:在浏览器引擎根据渲染数据渲染上述渲染请求对应的界面之后,浏览器引擎将渲染得到的界面返回至桌面应用程序,通过桌面应用程序将界面显示在应用端设备上。
采用本发明实施例,提供了一种桌面应用的渲染的方案。通过部署插件模块,由插件模块将设备上任意一个或多个桌面应用程序生成的渲染请求转发至浏览器引擎,再由浏览器引擎进行渲染,从而实现了多个桌面应用程序对同一个浏览器引擎的复用,由已安装在设备上的浏览器引擎来驱动桌面应用程序。因此,桌面应用程序的安装包中无需再包括单独的浏览器引擎,已包括浏览器引擎的安装包可以将浏览器引擎的相关部分裁剪,从而减小了安装包体积,并由于在运行多个桌面应用程序时,无需在设备上分别运行与每个桌面应用程序对应的浏览器引擎,因此提高了设备的运行效率。
由此,本申请上述实施例解决了现有技术中,每个桌面应用程序通过自身安装包中的浏览器引擎进行渲染,导致桌面引用程序的安装包体积大,设备运行效率低的技术问题。
本领域普通技术人员可以理解,图11示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例11
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的桌面应用的渲染方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,所述浏览器引擎包括用于支持所述浏览器引擎与所述多个桌面应用程序通信的插件模块;所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据;所述浏览器引擎根据所述渲染数据渲染上述渲染请求对应的界面。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种桌面应用的渲染方法,包括:
至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,所述浏览器引擎包括用于与所述多个桌面应用程序通信的插件模块;
所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据;
所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面。
2.根据权利要求1所述的方法,其中,所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据,包括:
所述浏览器引擎根据所述渲染请求获取对应的静态资源。
3.根据权利要求2所述的方法,其中,所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据,包括:
所述浏览器引擎向所述桌面应用程序对应的服务端发送动态数据请求;
所述浏览器引擎接收所述服务端返回的动态数据。
4.根据权利要求3所述的方法,其中,所述浏览器引擎向所述桌面应用程序对应的服务端发送动态数据请求,包括:
所述浏览器引擎根据所述静态资源中的超文本标记语言定义,获取脚本资源,其中,所述超文本标记语言定义中包括所述脚本资源的地址;
所述浏览器引擎根据所述脚本资源确定所述动态数据请求;
所述浏览器引擎将所述动态数据请求发送至所述桌面应用程序对应的服务端。
5.根据权利要求3所述的方法,其中,所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面,包括:
所述浏览器引擎根据所述静态资源和所述动态数据渲染得到所述渲染请求对应的界面。
6.根据权利要求1所述的方法,其中,在所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面之后,所述方法还包括:
所述浏览器引擎将渲染得到的所述界面返回至所述桌面应用程序,通过所述桌面应用程序将所述界面显示在应用端设备上。
7.一种桌面应用的渲染方法,包括:
运行在设备上的至少两个桌面应用程序向运行在所述设备上的同一个浏览器引擎对应的插件模块发送渲染请求,其中,所述插件模块用于将所述至少两个桌面应用程序发送的渲染请求发送至所述浏览器引擎;
所述至少两个桌面应用程序接收所述浏览器引擎根据所述渲染请求渲染的界面。
8.一种桌面应用的渲染方法,包括:
运行在设备上的桌面应用程序向目标浏览器引擎发送渲染请求,其中,所述目标浏览器引擎为运行在所述设备上的浏览器的引擎,所述目标浏览器引擎通过对应的插件模块接收任意一个桌面应用程序发送的渲染请求;
所述桌面应用程序接收所述浏览器引擎根据所述渲染请求渲染的界面。
9.一种桌面应用的渲染方法,包括:
运行在设备上的插件模块接收运行在所述设备上的任意一个桌面应用程序发送的渲染请求;
所述插件模块将所述渲染请求发送至浏览器引擎,其中,所述浏览器引擎用于根据所述渲染请求渲染对应的界面。
10.根据权利要求9所述的方法,其中,所述插件模块允许与多个所述桌面应用程序通信。
11.一种桌面应用的渲染系统,包括:
运行在设备上的桌面应用程序,用于向浏览器引擎发送渲染请求;
运行在所述设备上的浏览器引擎,用于通过插件模块接收多个桌面应用程序发送的渲染请求,并根据所述渲染请求,获取所述渲染请求对应的渲染数据,其中,所述插件模块用于与所述多个桌面应用程序通信。
12.一种桌面应用的渲染装置,包括:
接收模块,用于至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,所述浏览器引擎包括用于与所述多个桌面应用程序通信的插件模块;
获取模块,用于所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据;
渲染模块,用于所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面。
13.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,所述浏览器引擎包括用于与所述多个桌面应用程序通信的插件模块;所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据;所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面。
14.一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如下步骤:至少一个浏览器引擎接收多个桌面应用程序发送的渲染请求,其中,所述浏览器引擎包括用于与所述多个桌面应用程序通信的插件模块;所述浏览器引擎根据所述渲染请求,获取所述渲染请求对应的渲染数据;所述浏览器引擎根据所述渲染数据渲染所述渲染请求对应的界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070072.8A CN110895481A (zh) | 2018-09-13 | 2018-09-13 | 桌面应用的渲染方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070072.8A CN110895481A (zh) | 2018-09-13 | 2018-09-13 | 桌面应用的渲染方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110895481A true CN110895481A (zh) | 2020-03-20 |
Family
ID=69785505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811070072.8A Pending CN110895481A (zh) | 2018-09-13 | 2018-09-13 | 桌面应用的渲染方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110895481A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882711A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 渲染方法、装置、设备以及存储介质 |
CN113722538A (zh) * | 2021-09-08 | 2021-11-30 | 北京奇艺世纪科技有限公司 | 一种界面动态渲染方法及装置 |
CN114422637A (zh) * | 2021-12-20 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
CN114780164A (zh) * | 2022-02-28 | 2022-07-22 | 深圳开源互联网安全技术有限公司 | 基于浏览器插件筛选网页信息的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080086A2 (en) * | 2000-04-13 | 2001-10-25 | Neoplanet, Inc. | Method and apparatus for a dual rendering engine browser |
CN103761317A (zh) * | 2014-01-27 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种多线程异步渲染系统及方法 |
CN104063407A (zh) * | 2013-03-22 | 2014-09-24 | 谈天霆 | 基于云计算的浏览器架构与解析方法 |
CN104376016A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器中跨进程渲染方法和装置 |
CN106021464A (zh) * | 2016-05-17 | 2016-10-12 | 北京米学科技有限公司 | 一种多媒体文档多终端编辑打印通用的方法 |
-
2018
- 2018-09-13 CN CN201811070072.8A patent/CN110895481A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080086A2 (en) * | 2000-04-13 | 2001-10-25 | Neoplanet, Inc. | Method and apparatus for a dual rendering engine browser |
CN104063407A (zh) * | 2013-03-22 | 2014-09-24 | 谈天霆 | 基于云计算的浏览器架构与解析方法 |
CN104376016A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器中跨进程渲染方法和装置 |
CN103761317A (zh) * | 2014-01-27 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种多线程异步渲染系统及方法 |
CN106021464A (zh) * | 2016-05-17 | 2016-10-12 | 北京米学科技有限公司 | 一种多媒体文档多终端编辑打印通用的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882711A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 渲染方法、装置、设备以及存储介质 |
CN113722538A (zh) * | 2021-09-08 | 2021-11-30 | 北京奇艺世纪科技有限公司 | 一种界面动态渲染方法及装置 |
CN113722538B (zh) * | 2021-09-08 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 一种界面动态渲染方法及装置 |
CN114422637A (zh) * | 2021-12-20 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
CN114422637B (zh) * | 2021-12-20 | 2023-12-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
CN114780164A (zh) * | 2022-02-28 | 2022-07-22 | 深圳开源互联网安全技术有限公司 | 基于浏览器插件筛选网页信息的方法及系统 |
CN114780164B (zh) * | 2022-02-28 | 2023-04-25 | 深圳开源互联网安全技术有限公司 | 基于浏览器插件筛选网页信息的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10880227B2 (en) | Apparatus, hybrid apparatus, and method for network resource access | |
CN110895481A (zh) | 桌面应用的渲染方法、装置和系统 | |
US20170371974A1 (en) | Method for loading webpage, client and programmable device | |
CN109799988B (zh) | iOS页面布局方法、终端设备及计算机可读存储介质 | |
US20200133617A1 (en) | Interface display method and apparatus | |
CN106331149A (zh) | 一种针对客户端环境的网页代码自适应方法 | |
CN104978358B (zh) | 桌面展示网页片段的方法及截取网页片段至桌面展示系统 | |
CN106874519B (zh) | 页面展现方法和装置 | |
CN107122172B (zh) | 轻应用的处理方法、运行方法、设备及应用设备 | |
CN104111944A (zh) | 页面处理方法和装置以及页面生成方法和装置 | |
US20110145299A1 (en) | Offline Gadgets IDE | |
CN111010438B (zh) | 远程过程调用方法、装置、服务器及存储介质 | |
CN103873918A (zh) | 图片处理方法、装置及终端 | |
CN104317570B (zh) | 动态解析Web应用的装置和方法 | |
WO2018133772A1 (zh) | 网页资源的获取方法和装置、存储介质、电子装置 | |
JP2016540333A (ja) | 端末標記方法、端末標記装置、プログラム及び記録媒体 | |
CN104899212A (zh) | 网页展示方法、服务器及系统 | |
CN108733370B (zh) | 原生app的样式化显示方法、装置、终端及存储介质 | |
CN113076294A (zh) | 一种信息分享方法和装置 | |
CN104156421B (zh) | 页面的展现方法、装置及系统 | |
KR20140028789A (ko) | 모바일 디바이스에서의 웹 스크린 스크래핑 방법 및 웹 스크린 스크래핑을 제공하는 모바일 디바이스 | |
CN105786476B (zh) | 移动客户端与服务器之间的数据处理方法及系统 | |
CN110020242A (zh) | 一种基于Web的文档阅读进度同步方法及装置 | |
CN114756228A (zh) | 页面处理方法、装置、设备及存储介质 | |
CN102360380A (zh) | 提供网页的方法、系统、装置及终端 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026131 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200320 |