CN113535275A - 一种混合应用构建方法、装置及计算设备 - Google Patents
一种混合应用构建方法、装置及计算设备 Download PDFInfo
- Publication number
- CN113535275A CN113535275A CN202110902637.XA CN202110902637A CN113535275A CN 113535275 A CN113535275 A CN 113535275A CN 202110902637 A CN202110902637 A CN 202110902637A CN 113535275 A CN113535275 A CN 113535275A
- Authority
- CN
- China
- Prior art keywords
- target plug
- target
- plug
- hybrid application
- access interface
- 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
- 238000010276 construction Methods 0.000 title abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims description 10
- 238000013515 script Methods 0.000 claims description 9
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 18
- 238000011161 development Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007723 transport mechanism Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000001360 synchronised 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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种混合应用构建方法,适于在计算设备中执行来构建目标混合应用,目标混合应用包括原生应用端和网络页面,方法包括:确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化;生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件;将每个目标插件对应的访问接口注入到主窗口的视图控件中;通过所述视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口,其中,网络页面适于通过网络通道将目标插件信息传送到原生应用端,以便原生应用端基于目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至网络页面。本发明还一并公开了相应的混合应用构建装置和计算设备。
Description
技术领域
本发明涉及应用开发领域,特别涉及一种混合应用构建方法、混合应用构建装置及计算设备。
背景技术
桌面应用浏览器化是桌面应用开发的一个趋势。由于浏览器所具备的跨平台的优势、简单的发布方式,桌面操作系统上的大部分业务应用都可以基于浏览器来构建。
出于对安全策略的考虑,在浏览器页面内,不允许直接访问计算机本地的系统功能,这使得基于浏览器构建的应用在功能上有一定限制。为了摆脱功能限制,混合应用开发技术应运而生。混合应用开发是利用标准的Web技术(HTML/CSS/Javascript)来构建UI(User Interface,用户界面)界面,并通过插件机制来实现访问计算机本地的系统功能。因混合应用的开发效率较高,在开发非性能敏感的应用领域,有着广泛的应用。
现有技术中,Electron是被广泛使用的混合编程技术。Electron基于定制的Chrome来渲染UI界面,在浏览器页面内可以通过NodeJS模块来访问本地系统的功能。因此,所有Electron应用都包括一个内嵌的Chrome浏览器,并且,为了实现本地系统功能的访问,必须将插件封装成NodeJS模块,才能够被Electron应用调用。这样,会导致Electron应用的体积较大,另外,对插件的封装工作实现起来比较复杂,影响开发效率。
另外,UOS操作系统会适配各种芯片平台(包括龙芯、鲲鹏等),如果采用Electron方案,也需要Electron及时适配各种芯片平台。目前,存在一些支持UOS操作系统的芯片平台,但不支持Electron技术,从而,导致在UOS平台采用Electron技术开发混合应用存在一定障碍。
基于此,需要一种混合应用构建方法,以解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种混合应用构建方法和混合应用构建装置,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种混合应用构建方法,适于在计算设备中执行来构建目标混合应用,所述目标混合应用包括原生应用端和网络页面,所述方法包括步骤:确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化;生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件;将每个目标插件对应的访问接口注入到主窗口的视图控件中;以及通过所述视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口,其中,所述网络页面适于通过网络通道将目标插件信息传送到原生应用端,以便所述原生应用端基于所述目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至所述网络页面。
可选地,在根据本发明的混合应用构建方法中,所述目标插件信息包括插件名称、对应的一个或多个方法的名称以及调用参数。
可选地,在根据本发明的混合应用构建方法中,调用相应的目标插件包括:基于一个或多个方法的名称调用目标插件中的一个或多个方法。
可选地,在根据本发明的混合应用构建方法中,在通过所述视图控件加载网络页面之前,包括步骤:在所述视图控件中创建网络通道,以便网络页面基于所述网络通道与原生应用端通信。
可选地,在根据本发明的混合应用构建方法中,在获取目标插件的执行结果之后,包括步骤:基于执行结果来更新所述网络页面的UI界面。
可选地,在根据本发明的混合应用构建方法中,在将每个目标插件对应的访问接口注入到主窗口的视图控件中之前,包括步骤:创建主窗口,将视图控件嵌入所述主窗口中。
可选地,在根据本发明的混合应用构建方法中,将每个目标插件对应的访问接口注入到主窗口的视图控件中的步骤包括:将每个目标插件对应的访问接口的脚本进行合并处理,生成合并后的接口脚本文件;将合并后的接口脚本文件注入到主窗口的视图控件中。
可选地,在根据本发明的混合应用构建方法中,对每个目标插件进行实例化的步骤包括:对每个目标插件进行注册,以便在注册时对每个目标插件进行实例化。
可选地,在根据本发明的混合应用构建方法中,在网络页面调用目标插件对应的访问接口包括:基于网络页面中的Javascript代码调用目标插件对应的访问接口。
根据本发明的一个方面,提供了一种混合应用构建装置,适于构建目标混合应用,所述目标混合应用包括原生应用端和网络页面,所述装置包括:处理模块,适于确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化;生成模块,适于生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件;注入模块,适于将每个目标插件对应的访问接口注入到主窗口的视图控件中;以及加载模块,适于通过所述视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口,其中,所述网络页面适于通过网络通道将目标插件信息传送到原生应用端,以便所述原生应用端基于所述目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至所述网络页面。
根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述的混合应用构建方法的指令。
根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。
根据本发明的技术方案,提供了一种混合应用构建方法和装置,利用本发明的混合应用构建装置来构建混合应用,可以将UI界面与插件分开来实现,其中混合应用构建装置内包括大量通用的基础插件,这样,当内置的基础插件能够满足混合应用的实际需求时,便可以直接利用这些基础插件来构建混合应用,从而大大提高了混合应用的开发效率。例如,可以快速地开发基于UOS操作系统的混合应用,使得开发UOS系统的混合应用变得简单、方便。并且,根据本发明的技术方案,开发体验更好,所开发的混合应用的体积较小,能够广泛适用于多种操作系统。
另外,在根据本发明的方案构建混合应用时,通过在视图控件中创建网络通道,使得Web页面可以基于网络通道与原生应用端通信。这样,Web页面在调用目标插件对应的访问接口时,可以通过网络通道将目标插件信息传送到原生应用端,随后原生应用端可以基于目标插件信息来调用相应的目标插件,并将目标插件的执行结果返回至Web页面。这样,能够实现在Web页面准确、高效地调用原生应用端的目标插件中的方法,获取目标插件的执行结果,使得构建得到的目标混合应用能够实现与目标插件相对应的功能。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的混合应用构建方法200的流程图;
图3示出了根据本发明一个实施例的混合应用构建装置300的示意图;以及
图4示出了根据本发明一个实施例的在界面显示WIFI列表的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是示例计算设备100的示意框图。
如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138。
计算设备100还可以包括储存接口总线134。储存接口总线134实现了从储存设备132(例如,可移除储存器136和不可移除储存器138)经由总线/接口控制器130到基本配置102的通信。操作系统120、应用122以及数据124的至少一部分可以存储在可移除储存器136和/或不可移除储存器138上,并且在计算设备100上电或者要执行应用122时,经由储存接口总线134而加载到系统存储器106中,并由一个或者多个处理器104来执行。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备100也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、数码照相机、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。甚至可以被实现为服务器,如文件服务器、数据库服务器、应用程序服务器和WEB服务器等。本发明的实施例对此均不做限制。
在根据本发明的实施例中,计算设备100被配置为执行根据本发明的混合应用构建方法200。其中,布置在操作系统上的应用122中包含用于执行本发明的混合应用构建方法200的多条程序指令,这些程序指令可以指示处理器104执行本发明的混合应用构建方法200,以便计算设备200通过执行本发明的混合应用构建方法200来开发混合应用。
根据本发明的一个实施例,布置在操作系统上的应用122包括混合应用构建装置300,混合应用构建装置300中包含用于执行本发明的混合应用构建方法200的多条程序指令,使得本发明的混合应用构建方法200可以在混合应用构建装置300中执行。
图2示出了根据本发明一个实施例的混合应用构建方法200的流程图。混合应用构建方法200可以在计算设备(例如前述计算设备100)的混合应用构建装置300中执行。混合应用构建装置300布置在计算设备100的操作系统上。
根据本发明的一个实施例,混合应用构建装置300可以基于Qt框架来开发应用于桌面操作系统的混合应用。下文仅以Qt框架为例来对本发明的混合应用构建方法200的具体实施方式进行详细描述,但本发明的方法200不限于基于Qt框架的实施方式。
在一个实施例中,操作系统可以实现为UOS操作系统,但本发明不限于操作系统的具体种类。
应当指出,将待构建的混合应用称为目标混合应用。目标混合应用包括原生应用端和网络页面(即,Web页面)。在一个实施例中,目标混合应用的原生应用端为QWebEngine应用,例如可以实现为基于QWebEngine(基于chromium内核的浏览器框架)实现的浏览器。
如图2所示,方法200始于步骤S210。
在步骤S210中,确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化。
在一个实施例中,混合应用构建装置300中包括主窗口类,主窗口类可以提供一个或多个虚函数。通过调用主窗口类中的虚函数可以实现对每个目标插件进行注册,并在注册时对每个目标插件进行实例化。
需要说的是,混合应用构建装置300可以利用一个或多个插件实现访问计算设备本地操作系统的相应功能。对于UOS操作系统而言,每个插件可以基于一个符合预定规范的Qt类来实现。混合应用构建装置300中包括预先建立的一个或多个基础插件,例如蓝牙、网络、本地文件系统等插件。在基于混合应用构建装置300构建混合应用时,可以直接使用混合应用构建装置300提供的一个或多个基础插件。
另外,在基于混合应用构建装置300构建混合应用时,除了混合应用构建装置300中的一个或多个基础插件之外,开发人员还可以根据目标混合应用的需求来创建插件。在创建插件时需要继承插件的基类,并通过一组工具宏来提供插件的元数据信息。
还应当指出,每个插件可以包括一个或多个方法,每个方法包括与方法唯一对应的名称。对每个方法的调用可能是同步的,也可能是异步的。为了能够在网络页面中方便地调用每个插件中的方法,本发明的方法通过执行以下步骤来为每个插件生成相应的访问接口,并自动将每个插件注入到网络页面中。
其中,在步骤S220中,基于注册后的每个目标插件,生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件。这里,访问接口例如可以实现为基于Javascript代码实现的访问接口,但本发明不限于此。
随后,通过创建主窗口,并对主窗口初始化后,将视图控件嵌入主窗口中。视图控件即是主窗口的子控件。应当指出,视图控件可用于渲染Web页面的UI界面。
在一种实现方式中,主窗口可以实现为QMainWindow窗口,视图控件可以实现为QWebEngineView。
在一种实现方式中,Web页面的UI界面可以通过标准的Web技术(HTML/CSS/Javascript)来构建。在又一种实现方式中,UI界面也可以利用前端框架(Angular/React/Vue)来构建。应当指出,本发明不限于对UI界面的具体构建方式。
在创建主窗口并将视图控件嵌入主窗口中之后,可以执行步骤S230。
在步骤S230中,将每个目标插件对应的访问接口注入到主窗口的视图控件(QWebEngineView)中。这样,能实现对Web页面调用目标插件的环境进行初始化,以便在Web页面实现调用目标插件中的方法。
根据一个实施例,可以根据以下方法将每个目标插件对应的访问接口注入到主窗口的视图控件中:
首先,将每个目标插件对应的访问接口的脚本进行合并处理,生成合并后的接口脚本文件。进而,利用QWebEngine模块的功能,可以自动地将合并后的接口脚本文件注入到主窗口的视图控件QWebEngineView中。这里,基于QWebEngine模块的功能,能实现对接口的注入过程自动、透明。
最后,在步骤S240中,通过视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口。这里,可以通过调用主窗口的虚函数,来加载Web页面。
根据一个实施例,在通过视图控件加载Web页面之前,预先在视图控件中创建网络通道,使得Web页面可以基于网络通道与原生应用端通信。这样,Web页面在调用目标插件对应的访问接口时,可以通过网络通道将目标插件信息传送到原生应用端,随后,原生应用端可以基于目标插件信息来调用相应的目标插件,并将目标插件的执行结果返回至Web页面。
在一种实现方式中,目标插件信息可以包括插件名称、对应的一个或多个方法的名称、调用参数等信息。这样,原生应用端在获取Web页面通过网络通道传送的目标插件信息之后,在基于目标插件信息调用相应的目标插件时,可以基于目标插件信息中的插件名称来确定与之相对应的目标插件,并基于目标插件信息中的一个或多个方法的名称来调用目标插件中相应的一个或多个方法,随后,将一个或多个方法的执行结果(即目标插件的执行结果)返回至Web页面。
另外,Web页面在获取原生应用端返回的目标插件的执行结果之后,可以基于执行结果来更新Web页面的UI界面。至此,目标混合应用构建完成。这样,使得构建得到的目标混合应用能够实现与目标插件相对应的功能。
根据本发明的一个实施例,Web页面与原生应用端之间进行通信的网络通道,可以实现为QWebChannel,以便Web页面与原生应用端之间通过QWebChannel进行通信。QWebChannel利用Qt的反射机制实现高效的路由方案,基于该路由机制,能够实现在Web页面准确、高效地调用原生应用端的目标插件中的方法,经由原生应用端将目标插件中的方法的执行结果返回至Web页面。需要说明的是,Web页面也即UI界面对应的网页文件,其中包括Javascript代码。在Web页面调用目标插件对应的访问接口,实际上是通过Web页面中的Javascript代码来调用目标插件对应的访问接口。
根据本发明的一个实施例,基于本发明的方法200构建的目标混合应用可以实现为用于获取WIFI列表的应用,该混合应用的UI界面可以采用Web技术来实现。基于本发明的方法200构建的该混合应用,可以在Web页面调用原生应用端的相应插件(用于获取WIFI列表的插件)对应的接口,以便基于插件中的方法从计算设备本地获取WIFI列表,原生应用端可以将通过插件中的方法获取到的WIFI列表返回至Web页面,从而Web页面可以将WIFI列表显示在UI界面上。
在一种实现方式中,用于获取WIFI列表的插件需继承插件的基类,插件的基类例如为CAPQtPlugin。用于获取WIFI列表的插件可以通过BEGIN_PLUGIN_MAP、END_PLUGIN_MAP、PLUGIN_METHOD三个工具宏来提供插件的元数据信息。CAPQtPluginCall类中包括插件调用的全部信息,并可通过该类的方法将调用结果返回给Web页面。用于获取WIFI列表的插件中包括scanWifi方法,通过scanWifi方法可以扫描并获取计算设备本地可用的WIFI列表,并将获取到的WIFI列表作为方法的执行结果、以Json数据格式返回至Web页面。
通过自定义一个C++类MainWindow,MainWindow类继承自一个特殊的类CAPQtBridgeWindow,并在主窗口中实现虚函数registerPluginClasses。CAPQtBridgeWindow相当于Qt框架的主窗口,并在CAPQtBridgeWindow中嵌入QtWebEngineView浏览器。应用的主界面可以显示在主窗口CAPQtBridgeWindow中。
另外,基于虚函数registerPluginClasses,可以注册用于获取WIFI列表的插件wifiPlugin。在Qt主程序里,对MainWindow类进行实例化,并指定Web页面文件的路径。这样,可以在Web页面请求调用用于获取WIFI列表的插件,并由原生应用端基于Web页面传送的插件信息来调用插件中的方法,以便基于插件中的方法从计算设备本地获取可用的WIFI列表,并且,原生应用端可以将获取的WIFI列表返回至Web页面,以便Web页面将WIFI列表显示在UI界面,这里,参见图4示出的根据本发明一个实施例的在界面显示WIFI列表的示意图。这样,也就实现了基于插件的执行结果来更新Web页面的UI界面,使得构建得到的混合应用能够实现获取WIFI列表的功能。
图3示出了根据本发明一个实施例的混合应用构建装置300的示意图。混合应用构建装置300驻留在计算设备(例如前述计算设备100)中。混合应用构建装置300通过执行本发明的混合应用构建方法200来构建混合应用。
如图3所示,混合应用构建装置300包括依次相连的处理模块310、生成模块320、注入模块330以及加载模块340。
其中,处理模块310可以确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化。随后,生成模块320可以生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件。注入模块330可以将每个目标插件对应的访问接口注入到主窗口的视图控件中。加载模块340可以通过视图控件来加载Web页面,以便在Web页面调用目标插件对应的访问接口。具体地,Web页面在调用目标插件对应的访问接口时,通过网络通道将目标插件信息传送到原生应用端,由原生应用端基于目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至Web页面。Web页面可以根据目标插件的执行结果来更新UI界面,从而使得构建得到的目标混合应用能够实现相应功能。
应当指出,处理模块310用于执行前述步骤S210,生成模块320用于执行前述步骤S220,注入模块330用于执行前述步骤S230,加载模块340用于执行前述步骤S240。这里,关于处理模块310、生成模块320、注入模块330、加载模块340的执行逻辑可参见前文方法200中对步骤S210~S240的具体描述,此处不再赘述。
根据本发明的混合应用开发方案,利用本发明的混合应用构建装置来构建混合应用,可以将UI界面与插件分开来实现,其中混合应用构建装置内包括大量通用的基础插件,这样,当内置的基础插件能够满足混合应用的实际需求时,便可以直接利用这些基础插件来构建混合应用,从而大大提高了混合应用的开发效率。例如,可以快速地开发基于UOS操作系统的混合应用,使得开发UOS系统的混合应用变得简单、方便。并且,根据本发明的技术方案,开发体验更好,所开发的混合应用的体积较小,能够广泛适用于多种操作系统。
另外,在根据本发明的方案构建混合应用时,通过在视图控件中创建网络通道,使得Web页面可以基于网络通道与原生应用端通信。这样,Web页面在调用目标插件对应的访问接口时,可以通过网络通道将目标插件信息传送到原生应用端,随后原生应用端可以基于目标插件信息来调用相应的目标插件,并将目标插件的执行结果返回至Web页面。这样,能够实现在Web页面准确、高效地调用原生应用端的目标插件中的方法,获取目标插件的执行结果,使得构建得到的目标混合应用能够实现与目标插件相对应的功能。
A8、如A1-A7中任一项所述的方法,其中,对每个目标插件进行实例化的步骤包括:对每个目标插件进行注册,以便在注册时对每个目标插件进行实例化。
A9、如A1-A8中任一项所述的方法,其中,在网络页面调用目标插件对应的访问接口包括:基于网络页面中的Javascript代码调用目标插件对应的访问接口。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的多语言垃圾文本的识别方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种混合应用构建方法,适于在计算设备中执行来构建目标混合应用,所述目标混合应用包括原生应用端和网络页面,所述方法包括步骤:
确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化;
生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件;
将每个目标插件对应的访问接口注入到主窗口的视图控件中;以及
通过所述视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口,其中,所述网络页面适于通过网络通道将目标插件信息传送到原生应用端,以便所述原生应用端基于所述目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至所述网络页面。
2.如权利要求1所述的方法,其中,所述目标插件信息包括插件名称、对应的一个或多个方法的名称以及调用参数。
3.如权利要求2所述的方法,其中,调用相应的目标插件包括:
基于一个或多个方法的名称调用目标插件中的一个或多个方法。
4.如权利要求1-3中任一项所述的方法,其中,在通过所述视图控件加载网络页面之前,包括步骤:
在所述视图控件中创建网络通道,以便网络页面基于所述网络通道与原生应用端通信。
5.如权利要求1-4中任一项所述的方法,其中,在获取目标插件的执行结果之后,包括步骤:
基于执行结果来更新所述网络页面的UI界面。
6.如权利要求1-5中任一项所述的方法,其中,在将每个目标插件对应的访问接口注入到主窗口的视图控件中之前,包括步骤:
创建主窗口,将视图控件嵌入所述主窗口中。
7.如权利要求1-6中任一项所述的方法,其中,将每个目标插件对应的访问接口注入到主窗口的视图控件中的步骤包括:
将每个目标插件对应的访问接口的脚本进行合并处理,生成合并后的接口脚本文件;
将合并后的接口脚本文件注入到主窗口的视图控件中。
8.一种混合应用构建装置,适于构建目标混合应用,所述目标混合应用包括原生应用端和网络页面,所述装置包括:
处理模块,适于确定目标混合应用需求的一个或多个目标插件,对每个目标插件进行实例化;
生成模块,适于生成与每个目标插件相对应的访问接口,以便基于访问接口来调用相应的目标插件;
注入模块,适于将每个目标插件对应的访问接口注入到主窗口的视图控件中;以及
加载模块,适于通过所述视图控件加载网络页面,以便在网络页面调用目标插件对应的访问接口,其中,所述网络页面适于通过网络通道将目标插件信息传送到原生应用端,以便所述原生应用端基于所述目标插件信息调用相应的目标插件,并将目标插件的执行结果返回至所述网络页面。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述的方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902637.XA CN113535275A (zh) | 2021-08-06 | 2021-08-06 | 一种混合应用构建方法、装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902637.XA CN113535275A (zh) | 2021-08-06 | 2021-08-06 | 一种混合应用构建方法、装置及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535275A true CN113535275A (zh) | 2021-10-22 |
Family
ID=78122098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110902637.XA Pending CN113535275A (zh) | 2021-08-06 | 2021-08-06 | 一种混合应用构建方法、装置及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535275A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721745A (zh) * | 2022-05-24 | 2022-07-08 | 统信软件技术有限公司 | 一种浏览器加载使用本地插件的方法、装置与计算设备 |
CN114895898A (zh) * | 2022-04-29 | 2022-08-12 | 北京百度网讯科技有限公司 | 一种指令处理方法、装置、设备以及存储介质 |
-
2021
- 2021-08-06 CN CN202110902637.XA patent/CN113535275A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114895898A (zh) * | 2022-04-29 | 2022-08-12 | 北京百度网讯科技有限公司 | 一种指令处理方法、装置、设备以及存储介质 |
CN114721745A (zh) * | 2022-05-24 | 2022-07-08 | 统信软件技术有限公司 | 一种浏览器加载使用本地插件的方法、装置与计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904361B2 (en) | Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation | |
CN107861713B (zh) | 数据调用方法、装置及计算机可读存储介质 | |
CN113535275A (zh) | 一种混合应用构建方法、装置及计算设备 | |
CN112988252B (zh) | 一种操作系统启动方法及计算设备 | |
CN114691240A (zh) | 驱动硬件配置信息加载方法、装置和系统,以及计算设备 | |
CN111813385B (zh) | 一种基于Web应用的页面插件化方法、装置及设备 | |
CN113127100B (zh) | 一种异构程序执行方法、装置、计算设备及可读存储介质 | |
US20130198325A1 (en) | Provision and running a download script | |
CN112416348B (zh) | 页面生成方法、系统及计算设备 | |
WO2023155940A1 (zh) | 小程序的编译方法、小程序的运行方法及装置、存储介质 | |
CN108021445B (zh) | 内存优化方法、装置、系统及计算机可读存储介质 | |
CN113204385A (zh) | 一种插件加载方法、装置、计算设备及可读存储介质 | |
US20130176320A1 (en) | Machine processor | |
CN109445770B (zh) | 一种错误码的处理方法、装置、介质及设备 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN114115882A (zh) | 一种页面显示方法、装置及计算设备 | |
CN112860240A (zh) | 脚本验证方法、脚本签名方法及计算设备 | |
CN112732468A (zh) | 数据处理方法、数据交互系统及计算设备 | |
CN110377367B (zh) | 组件配置方法、装置、电子终端及计算机可读存储介质 | |
CN113961086B (zh) | 一种快捷键实现方法、计算设备及存储介质 | |
US20130191442A1 (en) | Provision of a download script | |
CN113254888A (zh) | 获取硬件信息的方法、授权控制系统及计算设备 | |
CN111198614A (zh) | 处理人类接口设备的输入内容的方法和装置 | |
CN113568879B (zh) | 一种文件属性追加方法、计算设备及存储介质 | |
CN114510288B (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 |