CN116775164A - 子应用程序运行方法、装置、电子设备及可读存储介质 - Google Patents
子应用程序运行方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116775164A CN116775164A CN202210220011.5A CN202210220011A CN116775164A CN 116775164 A CN116775164 A CN 116775164A CN 202210220011 A CN202210220011 A CN 202210220011A CN 116775164 A CN116775164 A CN 116775164A
- Authority
- CN
- China
- Prior art keywords
- application program
- target sub
- application
- sub
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 233
- 238000009877 rendering Methods 0.000 claims abstract description 127
- 230000008569 process Effects 0.000 claims description 177
- 238000004590 computer program Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- 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
-
- 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
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- 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/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- 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
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种子应用程序运行方法、装置、电子设备及可读存储介质,属于计算机技术领域。方法包括:响应于目标子应用程序在目标操作系统上的运行指令,获取目标子应用程序的页面数据,目标子应用程序是基于母应用程序提供的运行环境开发得到的;基于浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,浏览器是安装在目标操作系统上的任意浏览器;在母应用程序提供的运行环境中,基于浏览器显示目标子应用程序的显示页面。由于浏览器内核与目标操作系统的发行版本无关,因此,通过浏览器内核渲染得到目标子应用程序的显示页面并基于浏览器显示,实现在各发行版本的目标操作系统中运行目标子应用程序。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种子应用程序运行方法、装置、电子设备及可读存储介质。
背景技术
随着计算机技术的不断发展,子应用程序得到了广泛的应用。子应用程序也叫小程序,是一种不需要下载和安装即可运行的程序。子应用程序的运行依赖于母应用程序,母应用程序提供子应用程序的基础运行环境。
相关技术中,子应用程序可以运行在安卓(Android)操作系统(OperatingSystem,OS)、iOS、macOS、Windows操作系统等任一操作系统中。以Android操作系统为例,Android操作系统提供了统一的图形用户界面(GUI)框架,该GUI框架用于渲染出子应用程序的显示页面,以实现子应用程序在Android操作系统中运行。然而,部分操作系统存在众多发行版本,且不同发行版本的操作系统的差异极大,因此,不同发行版本的操作系统支持不同的GUI框架,导致子应用程序难以运行在这部分操作系统中。
发明内容
本申请实施例提供了一种子应用程序运行方法、装置、电子设备及可读存储介质,可用于解决相关技术中子应用程序难以运行在部分操作系统中的问题,所述技术方案包括如下内容。
一方面,本申请实施例提供了一种子应用程序运行方法,所述方法包括:
响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序是基于母应用程序提供的运行环境开发得到的;
基于浏览器的浏览器内核,对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
在所述母应用程序提供的运行环境中,基于所述浏览器显示所述目标子应用程序的显示页面。
另一方面,本申请实施例提供了一种子应用程序运行装置,所述装置包括:
获取模块,用于响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序是基于母应用程序提供的运行环境开发得到的;
渲染模块,用于基于浏览器的浏览器内核,对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
显示模块,用于在所述母应用程序提供的运行环境中,基于所述浏览器显示所述目标子应用程序的显示页面。
在一种可能的实现方式中,所述装置还包括:
所述显示模块,还用于基于所述浏览器显示至少一个候选子应用程序标识;
生成模块,用于响应于针对任一个候选子应用程序标识的选中操作,生成所述任一个候选子应用程序标识对应的目标子应用程序的运行指令。
在一种可能的实现方式中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述渲染模块,用于通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;基于所述原生组件数据对应的显示页面和所述非原生组件数据对应的显示页面,确定所述目标子应用程序的显示页面。
在一种可能的实现方式中,所述非原生组件数据包括至少一个内联框架数据;所述渲染模块,用于通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到所述各个内联框架数据对应的显示页面;基于所述各个内联框架数据对应的显示页面,确定所述非原生组件数据对应的显示页面。
在一种可能的实现方式中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述渲染模块,用于通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;通过第二渲染进程,在所述原生组件数据对应的显示页面上对所述非原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
在一种可能的实现方式中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述渲染模块,用于通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;通过第一渲染进程,在所述非原生组件数据对应的显示页面上对所述原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
在一种可能的实现方式中,所述获取模块,用于基于主进程获取所述目标子应用程序的逻辑代码;在所述母应用程序提供的运行环境中,基于所述目标子应用程序的服务进程运行所述目标子应用程序的逻辑代码;基于所述主进程和所述目标子应用程序的逻辑代码的运行结果,获取所述目标子应用程序的页面数据。
在一种可能的实现方式中,所述目标子应用程序的逻辑代码是基于与目标操作系统相关的应用程序接口编写的,所述与目标操作系统相关的应用程序接口是基于编译型编码语言编写的。
在一种可能的实现方式中,所述主进程和所述目标子应用程序的服务进程是基于即时编译型编码语言的运行环境运行的,所述主进程和所述目标子应用程序的服务进程之间通过套接字通信。
在一种可能的实现方式中,所述目标子应用程序的显示页面包含二维码,所述显示模块,还用于响应于获取到所述母应用程序针对所述二维码的扫码确认指令,基于所述浏览器显示所述目标子应用程序的显示页面的下一个页面。
另一方面,本申请实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现上述任一所述的子应用程序运行方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的子应用程序运行方法。
另一方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一种子应用程序运行方法。
本申请实施例提供的技术方案至少带来如下有益效果:
本申请实施例提供的技术方案是基于目标操作系统上浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,由于浏览器内核与目标操作系统的发行版本无关,因此,能实现在各个发行版本的目标操作系统中,基于浏览器内核对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,并基于浏览器显示目标子应用程序的显示页面,实现了在各个发行版本的目标操作系统中运行目标子应用程序。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种子应用程序运行方法的实施环境示意图;
图2是本申请实施例提供的一种子应用程序运行方法的流程图;
图3是本申请实施例提供的一种即时编译型编码语言的运行环境的示意图;
图4是本申请实施例提供的一种渲染进程的示意图;
图5是本申请实施例提供的一种目标子应用程序的显示页面;
图6是本申请实施例提供的一种子应用程序运行的框架图;
图7是本申请实施例提供的一种子应用程序运行装置的结构示意图;
图8是本申请实施例提供的一种终端设备的结构示意图;
图9是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种子应用程序运行方法的实施环境示意图,如图1所示,该实施环境包括终端设备101和服务器102。其中,本申请实施例中的子应用程序运行方法可以由终端设备101执行,或者由终端设备101和服务器102共同执行。
终端设备101可以是智能手机、游戏主机、台式计算机、平板电脑、膝上型便携计算机、智能电视、智能车载设备、智能语音交互设备、智能家电等。服务器102可以为一台服务器,或者为多台服务器组成的服务器集群,或者为云计算平台和虚拟化中心中的任意一种,本申请实施例对此不加以限定。服务器102可以与终端设备101通过有线网络或无线网络进行通信连接。服务器102可以具有数据处理、数据存储以及数据收发等功能,在本申请实施例中不加以限定。终端设备101和服务器102的数量不受限制,可以是一个或多个。
基于上述实施环境,本申请实施例提供了一种子应用程序运行方法,以图2所示的本申请实施例提供的一种子应用程序运行方法的流程图为例,该方法可由图1中的终端设备101执行,也可以由终端设备101和服务器102共同执行。为便于描述,将执行本申请实施例中的子应用程序运行方法的终端设备101或者服务器102称为电子设备,也就是说,本申请实施例提供的子应用程序运行方法可以由电子设备来执行。如图2所示,该方法包括步骤201至步骤203。
步骤201,响应于目标子应用程序在目标操作系统上的运行指令,获取目标子应用程序的页面数据,目标子应用程序是基于母应用程序提供的运行环境开发得到的。
目标子应用程序是基于母应用程序提供的运行环境开发得到的,母应用程序是任意的应用程序,可以运行在包括目标操作系统在内的多个操作系统中。母应用程序提供的运行环境所对应的代码可以作为目标子应用程序的框架代码,在目标子应用程序的框架代码的基础上编写得到目标子应用程序的程序文件,实现对目标子应用程序的开发。其中,目标子应用程序的程序文件包括目标子应用程序的框架代码等。
本申请实施例中,电子设备的操作系统为目标操作系统,目标操作系统包括Linux操作系统、Windows操作系统、macOS、Android操作系统、iOS等。其中,Linux操作系统是一个基于可移植操作系统接口(Portable Operating System Interface,POSIX)的多用户和多任务、支持多线程和多中央处理器(Central Processing Unit,CPU)的操作系统。
其中,电子设备可以为车载设备,车载设备的操作系统普遍为Linux操作系统,存在应用程序匮乏、开发成本高的问题,按照本申请实施例的子应用程序运行方法,将子应用程序运行在车载设备中,可以丰富车载生态。电子设备也可以为业务办理设备,业务办理设备的操作系统也可以是Linux操作系统。业务办理设备中的应用程序需要专门开发,开发成本高,周期长且迭代较慢。按照本申请实施例的子应用程序运行方法,将子应用程序运行在业务办理设备中,可以降低开发成本,提高迭代速度,提升用户体验。
目标子应用程序可以在目标操作系统上运行。其中,目标子应用程序可以是任意的子应用程序,本申请实施例不限定目标子应用程序的类型。示例性的,目标子应用程序为即时通讯类的子应用程序(用于即时通讯)或者视频类的子应用程序(可以提供视频)或者游戏类的子应用程序(支持游戏运行)。
电子设备的目标操作系统上运行有受精卵进程,受精卵进程可以分裂出主进程,并确保主进程运行在电子设备的目标操作系统上(即确保主进程存活),主进程用于监测目标子应用程序在目标操作系统上的运行指令。当主进程监测到目标子应用程序在目标操作系统上的运行指令时,电子设备可以获取到该运行指令。
可选的,响应于目标子应用程序在目标操作系统上的运行指令,获取目标子应用程序的页面数据之前,还包括:基于浏览器显示至少一个候选子应用程序标识;响应于针对任一个候选子应用程序标识的选中操作,生成任一个候选子应用程序标识对应的目标子应用程序的运行指令。
本申请实施例中,主进程用于管理各个子应用程序的程序文件,其中,任一子应用程序的程序文件包括该子应用程序的逻辑代码和该子应用程序的页面代码,其中,该子应用程序的页面代码包括该子应用程序的页面数据、该子应用程序的子应用程序标识等。
电子设备的目标操作系统上安装有任意的浏览器,该浏览器可以是目标操作系统自带的浏览器,也可以是在目标操作系统上安装的第三方浏览器,该浏览器包括浏览器内核。浏览器内核即是浏览器所采用的渲染引擎,可以决定了显示页面的内容、格式信息等的显示方式。浏览器内核中可以包括超文本传输协议(Hyper Text Transfer Protocol,HTTP)客户端,主进程中包括HTTP服务器,以使浏览器内核与主进程之间通过HTTP通信。
由于主进程管理的各个子应用程序的程序文件中均包括子应用程序标识,因此,电子设备可以基于主进程获取至少一个子应用程序标识,获取的各个子应用程序标识即为各个候选子应用程序标识,基于浏览器显示各个候选子应用程序标识。当监测到针对任一个候选子应用程序标识的选中操作后,电子设备生成该任一个候选子应用程序标识对应的目标子应用程序在目标操作系统上的运行指令。响应于该运行指令,获取目标子应用程序的页面数据。
可选的,电子设备的浏览器内核监测到针对任一个候选子应用程序标识的选中操作后,生成该任一个候选子应用程序标识对应的目标子应用程序在目标操作系统上的运行指令,并将该运行指令发送给电子设备的主进程。主进程响应于该运行指令,向浏览器内核发送目标子应用程序的程序文件,该目标子应用程序的程序文件包括目标子应用程序的页面数据,也就是说,浏览器内核获取到了目标子应用程序的页面数据。
在一种可能的实现方式中,获取目标子应用程序的页面数据,包括:基于主进程获取目标子应用程序的逻辑代码;在母应用程序提供的运行环境中,基于目标子应用程序的服务进程运行目标子应用程序的逻辑代码;基于主进程和目标子应用程序的逻辑代码的运行结果,获取目标子应用程序的页面数据。
本申请实施例中,主进程获取到目标子应用程序在目标操作系统上的运行指令之后,向受精卵进程发送该运行指令。受精卵进程响应于该运行指令,分裂出目标子应用程序的服务进程,向主进程发送目标子应用程序的服务进程的启动指令,并建立主进程与目标子应用程序的服务进程之间的跨进程通信。
主进程向目标子应用程序的服务进程发送目标子应用程序的程序文件,该目标子应用程序的程序文件包括目标子应用程序的逻辑代码和目标子应用程序的框架代码。电子设备的目标子应用程序的服务进程获取到目标子应用程序的程序文件之后,运行该目标子应用程序的逻辑代码和目标子应用程序的框架代码,以实现在母应用程序提供的运行环境中运行目标子应用程序的逻辑代码,得到目标子应用程序的逻辑代码的运行结果,并向浏览器内核发送目标子应用程序的逻辑代码的运行结果。主进程向浏览器内核发送目标子应用程序的程序文件,该目标子应用程序的程序文件包括目标子应用程序的页面数据。浏览器内核根据目标子应用程序的逻辑代码的运行结果,从目标子应用程序的程序文件中确定目标子应用程序的页面数据。通过该方式,使得电子设备获取到目标子应用程序的页面数据。
可选的,目标子应用程序的逻辑代码是基于与目标操作系统相关的应用程序接口编写的,与目标操作系统相关的应用程序接口是基于即时编译型编码语言的运行环境,采用编译型编码语言编写的。
本申请实施例中,目标子应用程序的逻辑代码是基于大量的应用程序接口(Application Programming Interface,API)编写的,这些应用程序接口大致可分为两类。一类为与目标操作系统相关的应用程序接口,如与文件系统相关的应用程序接口、与网络相关的应用程序接口,另一类为与电子设备硬件相关的应用程序接口,如与读取摄像头内容相关的应用程序接口。
针对与目标操作系统相关的应用程序接口,可以基于即时编译型编码语言的运行环境编写。请参见图3,图3是本申请实施例提供的一种即时编译型编码语言的运行环境的示意图,其中,该即时编译型编码语言的运行环境为Node.js。
Node.js适用于Windows操作系统、Linux操作系统、MacOS、安卓操作系统、iOS等目标操作系统,基于Node.js可以编码很多与目标操作系统相关的应用程序接口,这些应用程序接口可以称为Node.js API,其中,Node.js API包括与缓冲(Buffer)相关的应用程序接口、与事件(Events)相关的应用程序接口、与工人(Worker)相关的应用程序接口、与网络(Network)相关的应用程序接口、与检查员(Inspector)相关的应用程序接口、与文件系统(File System,FS)相关的应用程序接口、与流(Stream)相关的应用程序接口等。
Node.js内置绑定多种数据传输方式,这些数据传输方式包括套接字(Socket)、超文本传输协议、文件系统等。另外,Node.js可以用插件的形式支持采用C编码语言、C++编码语言编写的组件,其中,采用C编码语言编写的组件可以称为C附件组件(C Add-ons),采用C++编码语言编写的组件可以称为C++附件组件(C++Add-ons),C Add-ons或者C++Add-ons可以统称为C/C++Add-ons,也叫N-API。
Node.js内嵌V8,V8是一种JavaScript虚拟机,用于运行采用JavaScript编码语言(简称JS编码语言)编写的代码。Node.js包括Libuv库,Libuv库本身是由C语言编写的,具有很高的可移植性,支持线程池(Thread Pool)、事件循环(Event Loop)、异步输入输出(Async Input/Output,Async I/O)。Node.js还支持http_parser(一种有关HTTP解析器的库)、OpenSSL(一种密码库)、Zlib(一种基础库)等。其中,HTTP解析器是一个用C编码语言编写的HTTP消息解析器,可以解析请求并响应请求,被设计用于高性能HTTP应用程序。OpenSSL是一个安全套接字层密码库,囊括密码算法、密钥和证书封装管理功能及安全套接字层(Secure Sockets Layer,SSL)协议等。Zlib是提供数据压缩用的函式库。
本申请实施例中,可以基于Node.js或者除Node.js之外的其他即时编译型编码语言的运行环境,采用编译型编码语言编写与目标操作系统相关的应用程序接口。其中,编译型编码语言包括JavaScript编码语言等即时编译型编码语言、C编码语言等面向过程编码语言、C++编码语言等面向对象编码语言。通过即时编译型编码语言的运行环境,降低了实现API的成本。
由于与目标操作系统相关的应用程序接口是基于即时编译型编码语言的运行环境编写的,因此,与目标操作系统相关的应用程序接口可以运行在即时编译型编码语言的运行环境中,也可以运行在除即时编译型编码语言的运行环境之外的其他运行环境。其中,本申请实施例不对其他运行环境做限定。
与电子设备硬件相关的应用程序接口需要基于电子设备的设备信息,采用电子设备支持的编码语言编写,与电子设备硬件相关的应用程序接口可以运行在即时编译型编码语言的运行环境中。
可选的,主进程和目标子应用程序的服务进程是基于即时编译型编码语言的运行环境运行的,主进程和目标子应用程序的服务进程之间通过套接字通信。
本申请实施例中,主进程和目标子应用程序的服务进程均可以由即时编译型编码语言或者面向过程编码语言或者面向对象编码语言编写中的至少一项编写,并运行在即时编译型编码语言的运行环境中。主进程和目标子应用程序的服务进程由受精卵进程分裂得到,受精卵进程可以采用即时编译型编码语言编写,基于即时编译型编码语言的运行环境运行。受精卵进程与主进程之间、受精卵进程与目标子应用程序的服务进程之间、主进程和目标子应用程序的服务进程之间,均通过套接字(Socket)通信。
此外,主进程和目标子应用程序的服务进程还可以与浏览器内核通信。其中,主进程与浏览器内核之间通过HTTP通信,目标子应用程序的服务进程与浏览器内核之间通过WebSocket通信。
需要说明的是,在目标操作系统中可以运行至少一个子应用程序,每一个子应用程序对应一个服务进程,其中,在目标操作系统中运行的任一个子应用程序均可以是目标子应用程序。
步骤202,基于浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,浏览器是安装在目标操作系统上的任意浏览器。
本申请实施例中,目标子应用程序的页面数据是采用网页(Web)前端技术编写得到的,并基于浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面。通过目标操作系统中的浏览器和Web前端技术,实现了子应用程序用户界面(User Interface,UI)在目标操作系统中呈现。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,包括:通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面;通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面;基于原生组件数据对应的显示页面和非原生组件数据对应的显示页面,确定目标子应用程序的显示页面。
原生组件数据是有关原生组件的代码数据,非原生组件数据是有关非原生组件的代码数据。一般情况下,根据渲染类型,可以将目标子应用程序的显示页面上的组件分为原生组件和非原生组件。原生组件由操作系统的GUI框架渲染,非原生组件由网页视图(WebView)渲染。而在本申请实施例中,原生组件和非原生组件均由浏览器内核的网页视图渲染。
本申请实施例中,原生组件数据是采用Web前端技术编写得到的,由网页视图通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面。同时,非原生组件数据也是采用Web前端技术编写得到的,由网页视图通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面。通过两个渲染进程分别独立的渲染原生组件数据和非原生组件数据,可以减少渲染进程需要渲染的数据量,防止卡顿现象的发生。
可选的,非原生组件数据包括至少一个内联框架数据;通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面,包括:通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面;基于各个内联框架数据对应的显示页面,确定非原生组件数据对应的显示页面。
本申请实施例中,非原生组件数据包括至少一个内联框架(Inner Frame)数据,任一个内联框架数据是内联框架的数据,内联框架用于在网页页面中的任意位置嵌入另一个网页页面,也就是说,一个内联框架数据对应一个网页页面,基于至少一个网页页面可以得到非原生组件对应的显示页面。
一般情况下,<iframe>可以作为内联框架的标签,因此,内联框架数据是<iframe>代码。一个<iframe>代码用来承载目标子应用程序的一个网页页面。其中,<iframe>代码中包括统一资源定位系统(Uniform Resource Locator,URL),常将URL赋予关键词“src”,即令src=URL。
在对至少一个内联框架数据进行渲染时,可以为各个内联框架数据中URL的关键词赋予相同的域名,以通过同一个渲染进程对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面。将各个内联框架数据对应的显示页面进行拼接或者叠加等,得到非原生组件对应的显示页面。
请参见图4,图4是本申请实施例提供的一种渲染进程的示意图,浏览器内核基于浏览器进程对目标子应用程序的页面数据进行渲染,其中,子应用程序的页面数据包括原生组件数据和非原生组件数据。
针对原生组件数据,渲染进程A中渲染“域名1”对应的数据,表征为原生组件数据中URL的关键词赋予“域名1”的域名,通过渲染进程A渲染原生组件数据。
针对非原生组件数据,渲染进程B中渲染“域名2/文件名1”对应的数据和“域名2/文件名2”对应的数据,表明该非原生组件数据中包括两个内联框架数据。为这两个内联框架数据中URL的关键词赋予相同的域名“域名2”,并通过渲染进程B渲染这两个非原生组件数据。其中,“文件名1”为一个内联框架数据的文件名,“/”为分割符,“文件名2”为另一个内联框架数据的文件名。
可选的,在对至少一个内联框架数据进行渲染时,可以为各个内联框架数据中URL的关键词赋予不同的域名,以通过不同的渲染进程分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面。通过不同的渲染进程分别对各个内联框架数据进行渲染,能够降低每一个渲染进程的数据量,提高渲染效率,结合多核中央处理器(CentralProcessing Unit,CPU),能降低卡顿现象的发生。之后,将各个内联框架数据对应的显示页面进行拼接或者叠加等,得到非原生组件对应的显示页面。
在得到原生组件数据对应的显示页面和非原生组件数据对应的显示页面之后,可以将原生组件数据对应的显示页面和非原生组件数据对应的显示页面进行叠加,得到目标子应用程序的显示页面。可选的,可以将原生组件数据对应的显示页面叠加在非原生组件数据对应的显示页面之上,也可以将非原生组件数据对应的显示页面叠加在原生组件数据对应的显示页面之上,在本申请实施例中不做限定。也可以将原生组件数据对应的显示页面和非原生组件数据对应的显示页面进行拼接,得到目标子应用程序的显示页面。
请参见图5,图5是本申请实施例提供的一种目标子应用程序的显示页面,目标子应用程序的显示页面是将非原生组件数据对应的显示页面叠加在原生组件数据对应的显示页面之上得到的。其中,原生组件数据对应的显示页面包括标号501所示的各个原生组件以及标号502所示的各个原生组件,非原生组件数据对应的显示页面包括标号503所示的各个非原生组件。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,包括:通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面;通过第二渲染进程,在原生组件数据对应的显示页面上对非原生组件数据进行渲染,得到目标子应用程序的显示页面。
本申请实施例中,可以为原生组件数据中URL的关键词和非原生组件数据中URL的关键词赋予不同的域名,以通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面,通过第二渲染进程,在原生组件数据对应的显示页面上对非原生组件数据进行渲染,以将非原生组件直接渲染在原生组件数据对应的显示页面上,得到目标子应用程序的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予相同的域名,以通过同一个第二渲染进程,在原生组件数据对应的显示页面上对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予不同的域名,以通过不同的第二渲染进程,在原生组件数据对应的显示页面上分别对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。其中,可以先确定各个第二渲染进程的优先级,通过各个第二渲染进程,按照各个第二渲染进程的优先级,依次在原生组件数据对应的显示页面上分别对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,包括:通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面;通过第一渲染进程,在非原生组件数据对应的显示页面上对原生组件数据进行渲染,得到目标子应用程序的显示页面。
本申请实施例中,可以为原生组件数据中URL的关键词和非原生组件数据中URL的关键词赋予不同的域名,以通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面,通过第一渲染进程,在非原生组件数据对应的显示页面上对原生组件数据进行渲染,以将原生组件直接渲染在非原生组件数据对应的显示页面上,得到目标子应用程序的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予相同的域名,以通过同一个第二渲染进程,对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面,将各个内联框架数据对应的显示页面进行叠加或者拼接,得到非原生组件数据对应的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予不同的域名,以通过不同的第二渲染进程,分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面,将各个内联框架数据对应的显示页面进行叠加或者拼接,得到非原生组件数据对应的显示页面。
需要说明的是,第一渲染进程除可以对原生组件数据进行渲染之外,还可以运行有目标子应用程序的框架代码。其中,目标子应用程序是基于目标子应用程序的框架代码开发得到的。本申请实施例不对母应用程序做限定,示例性的,母应用程序为即时通讯应用程序或者金融类应用程序。
步骤203,在母应用程序提供的运行环境中,基于浏览器显示目标子应用程序的显示页面。
本申请实施例中,浏览器内核可以运行目标子应用程序的框架代码,以使浏览器可以提供母应用程序提供的运行环境。在浏览器提供了母应用程序提供的运行环境的基础上,基于浏览器显示目标子应用程序的显示页面,以便于用户基于对显示页面进行操作。
在一种可能的实现方式中,目标子应用程序的显示页面包含二维码,基于浏览器显示目标子应用程序的显示页面之后,还包括:响应于获取到母应用程序针对二维码的扫码确认指令,基于浏览器显示目标子应用程序的显示页面的下一个页面。
本申请实施例中,目标子应用程序的显示页面中可能包含有二维码(QuickResponse Code,QR Code),二维码是一种用某种特定的几何图形按一定规律在平面分布的、黑白相间的、记录数据符号信息的图形。例如,当目标子应用程序的显示页面为登录页面时,目标子应用程序的显示页面可能包括用于扫码登录的二维码,或者,当目标子应用程序的显示页面为支付页面时,目标子应用程序的显示页面可能包括用于扫码支付的二维码。
针对包含二维码的目标子应用程序的显示页面,用户可以利用母应用程序中的扫码功能对二维码进行扫码,得到扫码结果页面。扫码结果页面中包括确认控件,当用户点击确认控件之后,电子设备可以接收到通过母应用程序针对二维码的扫码确认指令,此时,基于浏览器显示目标子应用程序的显示页面的下一个页面。
可选的,母应用程序所在的电子设备可以和浏览器所在的电子设备为不同的电子设备,也可以为相同的电子设备,在本申请实施例中不做限定。
上述是从方法步骤的角度阐述了本申请实施例的子应用程序运行方法,下面结合图6来进一步阐述本申请实施例的子应用程序运行方法,图6是本申请实施例提供的一种子应用程序运行的框架图。本申请实施例中的电子设备包括浏览器内核、主进程、目标子应用程序的服务进程以及受精卵进程。
其中,受精卵进程可以分裂出主进程和目标子应用程序的服务进程,并对主进程和目标子应用程序的服务进程进行管理,确保主进程和目标子应用程序的服务进程可以跨进程通信,因此,受精卵进程具有跨进程通信中枢的作用。
主进程是采用JS编码语言和C++编码语言编写而成。其中,采用JS编码语言编写得到的代码称为JS代码。JS代码对应JS运行环境,该JS运行环境包括HTTP服务端(采用HTTP通信的服务端),用于与浏览器内核的HTTP客户端(采用HTTP通信的客户端)进程通信。JS运行环境还可以进行子应用程序管理。采用C++编码语言编写得到的代码称为C++代码。C++代码包括Node.js插件(也叫Node Addon),Node Addon支持子应用程序硬件框架(Wechat Mini-Program Framework,WMPF)服务、通用网关接口(Common Gateway Interface,CGI)、子应用程序软件包管理和用户会话。其中,子应用程序软件包即为上文提及的子应用程序的程序文件,子应用程序的程序文件包括子应用程序页面代码、子应用程序逻辑代码和子应用程序框架代码,子应用程序框架代码是上文提及的目标子应用程序的框架代码。Node Addon支持基础库,该基础库包括但不限于C++公共库(如wxbase)、日志库(如wxlog)、进程间通信库(如wxipc)、软件开发包库(如ilink)、数据库(如mmkv)、线程库(如Future)等。其中,JS代码和C++代码通过N-API技术关联。
浏览器内核包括公共作用域和子应用程序页面作用域。其中,公共作用域相当于上文提及的第一渲染进程,用于渲染原生组件数据。公共作用域包括HTTP客户端,用于与主进程中的HTTP服务端通信。公共作用域还可以包括WS客户端(采用WebSocket通信的客户端),用于与目标子应用程序的服务进程中的WS服务端(采用WebSocket通信的服务端)通信。公共作用域可以渲染得到原生组件,具有调试器的功能,可以运行子应用程序框架代码,支持日志库。子应用程序页面作用域相当于上文提及的第二渲染进程,用于渲染非原生组件数据。其中,子应用程序页面作用域支持子应用程序基础库,可以运行子应用程序页面代码。子应用程序页面作用域和公共作用域通过信息通道通信。
目标子应用程序的服务进程是采用JS编码语言和C++编码语言编写而成。其中,采用JS编码语言编写得到的代码称为JS代码。JS代码可以分为子应用程序逻辑作用域和公共作用域两部分。子应用程序逻辑作用域支持子应用程序基础库,可以运行子应用程序逻辑代码。公共作用域包括WS服务端,用于与浏览器中的WS客户端通信。公共作用域运行有子应用程序框架代码,具有调试器的功能。子应用程序逻辑作用域和公共作用域通过信息通道通信。采用C++编码语言编写得到的代码称为C++代码。C++代码包括Node.js插件,Node.js插件支持进程间通信库、日志库和代码缓存管理。其中,JS代码和C++代码通过N-API技术关联。
其中,主进程与目标子应用程序的服务进程是通过进程间通信(Inter-ProcessCommunication,IPC)来通信的,主进程与浏览器内核通过HTTP通信,浏览器内核与目标子应用程序的服务进程通过WebSocket通信。其中,IPC通信可以是Socket通信。
本申请实施例中,受精卵进程先分裂出主进程。当获取到目标子应用程序在目标操作系统上的运行指令时,受精卵进程分裂出目标子应用程序的服务进程,并建立主进程与目标子应用程序的服务进程之间的IPC通道,以使主进程与目标子应用程序的服务进程之间进行IPC通信。
目标子应用程序的服务进程基于主进程获取目标子应用程序的子应用程序软件包,目标子应用程序的子应用程序软件包中包括目标子应用程序的子应用程序逻辑代码和目标子应用程序的子应用程序框架代码。目标子应用程序的服务进程运行目标子应用程序的子应用程序逻辑代码以及目标子应用程序的子应用程序框架代码。通过运行目标子应用程序的子应用程序框架代码,使得目标子应用程序的服务进程可以提供母应用程序提供的运行环境,并在母应用程序提供的运行环境中运行目标子应用程序的子应用程序逻辑代码,得到目标子应用程序的子应用程序逻辑代码的运行结果(可以称为第一运行结果)。其中,目标子应用程序的服务进程中的公共作用域运行目标子应用程序的子应用程序框架代码,目标子应用程序的服务进程中的子应用程序逻辑作用域运行目标子应用程序的子应用程序逻辑代码,目标子应用程序的子应用程序逻辑代码即为上文提及的目标子应用程序的逻辑代码。
浏览器内核通过主进程获取目标子应用程序的子应用程序软件包。另外,浏览器内核通过目标子应用程序的服务进程获取目标子应用程序的子应用程序逻辑代码的运行结果,基于目标子应用程序的子应用程序逻辑代码的运行结果,从目标子应用程序的子应用程序软件包中确定出目标子应用程序的页面数据,并对目标子应用程序的页面数据进行渲染。
可选的,目标子应用程序的子应用程序软件包中包括目标子应用程序的子应用程序框架代码和目标子应用程序的子应用程序页面代码。浏览器内核基于目标子应用程序的子应用程序逻辑代码的运行结果,从目标子应用程序的子应用程序框架代码中确定出原生组件数据,从目标子应用程序的子应用程序页面代码中确定出非原生组件数据,得到目标子应用程序的页面数据(可以称为第一页面数据)。
目标子应用程序的页面数据包括原生组件数据和非原生组件数据。浏览器内核的公共作用域对原生组件数据进行渲染,得到原生组件数据对应的显示页面,浏览器内核的子应用程序页面作用域对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面。通过将原生组件数据对应的显示页面和非原生组件数据对应的显示页面进行拼接或者叠加,得到目标子应用程序的显示页面(可以称为第一显示页面)。
本申请实施例中,浏览器内核的公共作用域运行目标子应用程序的子应用程序框架代码,且对原生组件数据进行渲染,浏览器内核的子应用程序页面作用域对非原生组件数据进行渲染。通过运行目标子应用程序的子应用程序框架代码,使得浏览器可以提供母应用程序提供的运行环境,并在母应用程序提供的运行环境中,基于浏览器显示目标子应用程序的显示页面。
可选的,主进程还可以与母应用程序进行CGI通信。例如,主进程可以接收母应用程序针对目标子应用程序的显示页面上包含的二维码的扫码确认指令,并将该扫码确认指令发送给目标子应用程序的服务进程,以使目标子应用程序的服务进程基于该扫码确认指令,在母应用程序提供的运行环境中,再次运行目标子应用程序的逻辑代码,得到目标子应用程序的逻辑代码的新的运行结果(可以称为第二运行结果)。浏览器内核通过目标子应用程序的服务进程获取第二运行结果,基于第二结果,从目标子应用程序的子应用程序软件包中确定出目标子应用程序的新的页面数据(可以称为第二页面数据),并对第二页面数据进行渲染,得到目标子应用程序的新的显示页面(可以称为第二显示页面)。在母应用程序提供的运行环境中,基于浏览器显示第二显示页面。
其中,包含的二维码的目标子应用程序的显示页面可以为登录页面,主进程通过与母应用程序进行CGI通信,可以实现对用户登录状态的管理。包含的二维码的目标子应用程序的显示页面可以为支付页面,主进程通过与母应用程序进行CGI通信,可以实现对支付状态的管理。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的目标子应用程序的页面数据、目标子应用程序的逻辑代码等都是在充分授权的情况下获取的。
上述方法是基于目标操作系统上浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,由于浏览器内核与目标操作系统的发行版本无关,因此,能实现在各个发行版本的目标操作系统中,基于浏览器内核对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,并基于浏览器显示目标子应用程序的显示页面,实现了在各个发行版本的目标操作系统中运行目标子应用程序。
图7所示为本申请实施例提供的一种子应用程序运行装置的结构示意图,如图7所示,该装置包括:
获取模块701,用于响应于目标子应用程序在目标操作系统上的运行指令,获取目标子应用程序的页面数据,目标子应用程序是基于母应用程序提供的运行环境开发得到的;
渲染模块702,用于基于浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,浏览器是安装在目标操作系统上的任意浏览器;
显示模块703,用于在母应用程序提供的运行环境中,基于浏览器显示目标子应用程序的显示页面。
在一种可能的实现方式中,装置还包括:
显示模块703,还用于基于浏览器显示至少一个候选子应用程序标识;
生成模块,用于响应于针对任一个候选子应用程序标识的选中操作,生成任一个候选子应用程序标识对应的目标子应用程序的运行指令。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;渲染模块702,用于通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面;通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面;基于原生组件数据对应的显示页面和非原生组件数据对应的显示页面,确定目标子应用程序的显示页面。
在一种可能的实现方式中,非原生组件数据包括至少一个内联框架数据;渲染模块702,用于通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面;基于各个内联框架数据对应的显示页面,确定非原生组件数据对应的显示页面。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;渲染模块702,用于通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面;通过第二渲染进程,在原生组件数据对应的显示页面上对非原生组件数据进行渲染,得到目标子应用程序的显示页面。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;渲染模块702,用于通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面;通过第一渲染进程,在非原生组件数据对应的显示页面上对原生组件数据进行渲染,得到目标子应用程序的显示页面。
在一种可能的实现方式中,获取模块701,用于基于主进程获取目标子应用程序的逻辑代码;在母应用程序提供的运行环境中,基于目标子应用程序的服务进程运行目标子应用程序的逻辑代码;基于主进程和目标子应用程序的逻辑代码的运行结果,获取目标子应用程序的页面数据。
在一种可能的实现方式中,目标子应用程序的逻辑代码是基于与目标操作系统相关的应用程序接口编写的,与目标操作系统相关的应用程序接口是基于即时编译型编码语言的运行环境,采用编译型编码语言编写的。
在一种可能的实现方式中,主进程和目标子应用程序的服务进程是基于即时编译型编码语言的运行环境运行的,主进程和目标子应用程序的服务进程之间通过套接字通信。
在一种可能的实现方式中,目标子应用程序的显示页面包含二维码,显示模块703,还用于响应于获取到母应用程序针对二维码的扫码确认指令,基于浏览器显示目标子应用程序的显示页面的下一个页面。
上述装置是基于目标操作系统上浏览器的浏览器内核,对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,由于浏览器内核与目标操作系统的发行版本无关,因此,能实现在各个发行版本的目标操作系统中,基于浏览器内核对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,并基于浏览器显示目标子应用程序的显示页面,实现了在各个发行版本的目标操作系统中运行目标子应用程序。
应理解的是,上述图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8示出了本申请一个示例性实施例提供的终端设备800的结构框图。该终端设备800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器801所执行以实现本申请中方法实施例提供的子应用程序运行方法。
在一些实施例中,终端设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807和电源808中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置在终端设备800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端设备800的不同表面或呈折叠设计;在另一些实施例中,显示屏805可以是柔性显示屏,设置在终端设备800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
电源808用于为终端设备800中的各个组件进行供电。电源808可以是交流电、直流电、一次性电池或可充电电池。当电源808包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备800还包括有一个或多个传感器809。该一个或多个传感器809包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、光学传感器814以及接近传感器815。
加速度传感器811可以检测以终端设备800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端设备800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端设备800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端设备800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端设备800的侧边框时,可以检测用户对终端设备800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器814用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器814采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器814采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器815,也称距离传感器,通常设置在终端设备800的前面板。接近传感器815用于采集用户与终端设备800的正面之间的距离。在一个实施例中,当接近传感器815检测到用户与终端设备800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器815检测到用户与终端设备800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图8中示出的结构并不构成对终端设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图9为本申请实施例提供的服务器的结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器901和一个或多个的存储器902,其中,该一个或多个存储器902中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器901加载并执行以实现上述各个方法实施例提供的子应用程序运行方法,示例性的,处理器901为CPU。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种子应用程序运行方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一种子应用程序运行方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种子应用程序的运行方法,其特征在于,所述方法包括:
响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序是基于母应用程序提供的运行环境开发得到的;
基于浏览器的浏览器内核,对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
在所述母应用程序提供的运行环境中,基于所述浏览器显示所述目标子应用程序的显示页面。
2.根据权利要求1所述的方法,其特征在于,所述响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据之前,还包括:
基于所述浏览器显示至少一个候选子应用程序标识;
响应于针对任一个候选子应用程序标识的选中操作,生成所述任一个候选子应用程序标识对应的目标子应用程序的运行指令。
3.根据权利要求1所述的方法,其特征在于,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;
通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;
基于所述原生组件数据对应的显示页面和所述非原生组件数据对应的显示页面,确定所述目标子应用程序的显示页面。
4.根据权利要求3所述的方法,其特征在于,所述非原生组件数据包括至少一个内联框架数据;所述通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面,包括:
通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到所述各个内联框架数据对应的显示页面;
基于所述各个内联框架数据对应的显示页面,确定所述非原生组件数据对应的显示页面。
5.根据权利要求1所述的方法,其特征在于,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;
通过第二渲染进程,在所述原生组件数据对应的显示页面上对所述非原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
6.根据权利要求1所述的方法,其特征在于,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;
通过第一渲染进程,在所述非原生组件数据对应的显示页面上对所述原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
7.根据权利要求1所述的方法,其特征在于,所述获取所述目标子应用程序的页面数据,包括:
基于主进程获取所述目标子应用程序的逻辑代码;
在所述母应用程序提供的运行环境中,基于所述目标子应用程序的服务进程运行所述目标子应用程序的逻辑代码;
基于所述主进程和所述目标子应用程序的逻辑代码的运行结果,获取所述目标子应用程序的页面数据。
8.根据权利要求7所述的方法,其特征在于,所述目标子应用程序的逻辑代码是基于与目标操作系统相关的应用程序接口编写的,所述与目标操作系统相关的应用程序接口是基于即时编译型编码语言的运行环境,采用编译型编码语言编写的。
9.根据权利要求7所述的方法,其特征在于,所述主进程和所述目标子应用程序的服务进程是基于即时编译型编码语言的运行环境运行的,所述主进程和所述目标子应用程序的服务进程之间通过套接字通信。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述目标子应用程序的显示页面包含二维码,所述基于所述浏览器显示所述目标子应用程序的显示页面之后,还包括:
响应于获取到所述母应用程序针对所述二维码的扫码确认指令,基于所述浏览器显示所述目标子应用程序的显示页面的下一个页面。
11.一种子应用程序运行装置,其特征在于,所述装置包括:
获取模块,用于响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序是基于母应用程序提供的运行环境开发得到的;
渲染模块,用于基于浏览器的浏览器内核,对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
显示模块,用于在所述母应用程序提供的运行环境中,基于所述浏览器显示所述目标子应用程序的显示页面。
12.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现如权利要求1至10任一所述的子应用程序运行方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至10任一所述的子应用程序运行方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至10任一所述的子应用程序运行方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210220011.5A CN116775164A (zh) | 2022-03-08 | 2022-03-08 | 子应用程序运行方法、装置、电子设备及可读存储介质 |
PCT/CN2023/075850 WO2023169157A1 (zh) | 2022-03-08 | 2023-02-14 | 子应用程序的运行方法、装置、电子设备、程序产品及存储介质 |
US18/379,651 US20240036891A1 (en) | 2022-03-08 | 2023-10-12 | Sub-application running method and apparatus, electronic device, program product, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210220011.5A CN116775164A (zh) | 2022-03-08 | 2022-03-08 | 子应用程序运行方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775164A true CN116775164A (zh) | 2023-09-19 |
Family
ID=87937186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210220011.5A Pending CN116775164A (zh) | 2022-03-08 | 2022-03-08 | 子应用程序运行方法、装置、电子设备及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240036891A1 (zh) |
CN (1) | CN116775164A (zh) |
WO (1) | WO2023169157A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198730B (zh) * | 2018-10-30 | 2023-05-23 | 广州腾讯科技有限公司 | 子应用程序启动的方法、装置、终端及计算机存储介质 |
CN110457621B (zh) * | 2019-08-15 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种混合应用的页面显示方法、装置及介质 |
CN112527403B (zh) * | 2019-09-19 | 2022-07-05 | 荣耀终端有限公司 | 一种应用启动方法及电子设备 |
CN110750255B (zh) * | 2019-09-25 | 2022-08-02 | 支付宝(杭州)信息技术有限公司 | 一种小程序渲染方法和装置 |
CN110704136B (zh) * | 2019-09-27 | 2023-06-20 | 北京百度网讯科技有限公司 | 小程序组件的渲染方法、客户端、电子设备及存储介质 |
CN112035172B (zh) * | 2020-09-03 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 操作系统启动方法、装置、服务器及存储介质 |
CN112416613B (zh) * | 2020-10-23 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 一种应用数据处理方法、装置、设备以及介质 |
CN112307403A (zh) * | 2020-11-12 | 2021-02-02 | Oppo(重庆)智能科技有限公司 | 页面渲染方法、装置、存储介质以及终端 |
CN112331235B (zh) * | 2021-01-04 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 多媒体内容的编辑控制方法、装置、电子设备和存储介质 |
CN114077368B (zh) * | 2022-01-19 | 2022-06-28 | 腾讯科技(深圳)有限公司 | 车载小程序运行方法、装置、计算机设备及存储介质 |
-
2022
- 2022-03-08 CN CN202210220011.5A patent/CN116775164A/zh active Pending
-
2023
- 2023-02-14 WO PCT/CN2023/075850 patent/WO2023169157A1/zh unknown
- 2023-10-12 US US18/379,651 patent/US20240036891A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023169157A1 (zh) | 2023-09-14 |
US20240036891A1 (en) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674022B (zh) | 行为数据获取方法、装置及存储介质 | |
CN110837473B (zh) | 应用程序调试方法、装置、终端及存储介质 | |
CN112420217B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN110225048B (zh) | 数据传输方法、装置、第一终端及存储介质 | |
CN110851823B (zh) | 数据访问方法、装置、终端及存储介质 | |
CN110275836B (zh) | 虚幻引擎应用的安全测试方法、装置及存储介质 | |
CN113051015B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN109040339B (zh) | 基于ajax的跨域请求处理方法、装置及设备 | |
CN111737100A (zh) | 数据获取方法、装置、设备及存储介质 | |
CN114064450A (zh) | 应用程序测试方法、装置、电子设备及存储介质 | |
CN111625315A (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN113190362B (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN112148499A (zh) | 数据上报方法、装置、计算机设备及介质 | |
CN111241451A (zh) | 网页处理方法、装置、计算机设备及存储介质 | |
CN111970298A (zh) | 应用访问方法、装置、存储介质及计算机设备 | |
CN111258683A (zh) | 检测方法、装置、计算机设备及存储介质 | |
CN114816600B (zh) | 会话消息显示方法、装置、终端及存储介质 | |
CN112188268B (zh) | 虚拟场景展示方法、虚拟场景的介绍视频生成方法及装置 | |
CN110390065B (zh) | 网页获取方法、装置及系统 | |
CN116775164A (zh) | 子应用程序运行方法、装置、电子设备及可读存储介质 | |
CN110417931B (zh) | 域名解析记录获取方法、装置、计算机设备及存储介质 | |
CN114385939A (zh) | 应用显示方法、应用显示系统、装置及设备 | |
CN113891441A (zh) | 网络连接方法、装置和电子设备 | |
CN112052419A (zh) | 图片加载方法、装置、设备及可读存储介质 | |
CN113268234A (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: 40094495 Country of ref document: HK |