WO2023169157A1 - 子应用程序的运行方法、装置、电子设备、程序产品及存储介质 - Google Patents

子应用程序的运行方法、装置、电子设备、程序产品及存储介质 Download PDF

Info

Publication number
WO2023169157A1
WO2023169157A1 PCT/CN2023/075850 CN2023075850W WO2023169157A1 WO 2023169157 A1 WO2023169157 A1 WO 2023169157A1 CN 2023075850 W CN2023075850 W CN 2023075850W WO 2023169157 A1 WO2023169157 A1 WO 2023169157A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
target sub
sub
data
target
Prior art date
Application number
PCT/CN2023/075850
Other languages
English (en)
French (fr)
Inventor
郭沛然
张德明
梁兆鹏
胡豪俊
黄吉生
蔡经纬
林政�
黄昱珲
赵景晨
Original Assignee
腾讯科技(深圳)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Publication of WO2023169157A1 publication Critical patent/WO2023169157A1/zh
Priority to US18/379,651 priority Critical patent/US20240036891A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/0483Interaction with page-structured environments, e.g. book metaphor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • Embodiments of the present application relate to the field of computer technology, and in particular to a method, device, electronic device, program product, and storage medium for running a sub-application program.
  • Sub-applications also called mini-programs, are programs that can be run without downloading and installation.
  • the operation of sub-applications usually depends on the parent application, and the parent application provides the basic running environment of the sub-application.
  • sub-applications can run in any operating system such as Android (Operating System, OS), iOS, macOS, and Windows operating systems.
  • OS Operating System
  • iOS iOS
  • macOS macOS
  • Windows operating systems Taking the Android operating system as an example, the Android operating system provides a unified graphical user interface (GUI) framework, which is used to render the display page of the sub-application to enable the sub-application to run in the Android operating system.
  • GUI graphical user interface
  • some operating systems have many distributions, and the operating systems of different distributions are very different. Therefore, different distributions of operating systems support different GUI frameworks, making it difficult for sub-applications to run in these operating systems.
  • Embodiments of the present application provide a sub-application running method, device, electronic device, program product and storage medium, which helps to solve the problem in related technologies that sub-applications are difficult to run in some operating systems.
  • the technical solution includes As follows.
  • embodiments of the present application provide a sub-application running method, which is executed in an electronic device.
  • the method includes:
  • the embodiment of the present application provides a device for running a sub-application, and the device includes:
  • An acquisition module configured to acquire page data of the target sub-application program in response to the execution instruction of the target sub-application program on the target operating system.
  • the runtime of the target sub-application program is provided by the parent application program or is independent of the target sub-application program.
  • the parent application is run;
  • a rendering module configured to render the page data of the target sub-application through a browser to obtain the display page of the target sub-application, where the browser is any browser installed on the target operating system;
  • a display module configured to display the display page of the target sub-application based on the browser.
  • inventions of the present application provide an electronic device.
  • the electronic device includes a processor and a memory. At least one computer program is stored in the memory. The at least one computer program is loaded and executed by the processor. , so that the electronic device implements any of the above sub-application running methods.
  • a computer-readable storage medium is also provided. At least one computer program is stored in the computer-readable storage medium. The at least one computer program is loaded and executed by the processor to enable the computer to implement any of the above.
  • the described sub-application running method is also provided.
  • a computer program or computer program product is also provided. At least one computer program is stored in the computer program or computer program product. The at least one computer program is loaded and executed by the processor to enable the computer to implement the above. Either seed application run method.
  • Figure 1 is a schematic diagram of the implementation environment of a sub-application running method provided by an embodiment of the present application
  • Figure 2 is a flow chart of a sub-application running method provided by an embodiment of the present application
  • Figure 3 is a schematic diagram of the running environment of a just-in-time compiled coding language provided by an embodiment of the present application
  • Figure 4 is a schematic diagram of a rendering process provided by an embodiment of the present application.
  • Figure 5 is a display page of a target sub-application provided by an embodiment of the present application.
  • Figure 6 is a framework diagram of a sub-application operation provided by the embodiment of the present application.
  • Figure 7 is a schematic structural diagram of a sub-application running device provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of a terminal device provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of a server provided by an embodiment of the present application.
  • Figure 1 is a schematic diagram of an implementation environment of a sub-application running method provided by an embodiment of the present application.
  • the implementation environment includes a terminal device 101 and a server 102.
  • the sub-application running method in the embodiment of the present application can be executed by the terminal device 101, or jointly executed by the terminal device 101 and the server 102.
  • the terminal device 101 may be a smart phone, a game console, a desktop computer, a tablet computer, a laptop computer, a smart TV, a smart vehicle-mounted device, a smart voice interaction device, a smart home appliance, etc.
  • the server 102 may be a single server, a server cluster composed of multiple servers, or any one of a cloud computing platform and a virtualization center, which is not limited in this embodiment of the present application.
  • the server 102 can communicate with the terminal device 101 through a wired network or a wireless network.
  • the server 102 may have functions such as data processing, data storage, and data sending and receiving, which are not limited in the embodiments of this application.
  • the number of terminal devices 101 and servers 102 is not limited, and may be one or more.
  • the embodiment of the present application provides a sub-application running method.
  • the method can be performed by the terminal in Figure 1
  • the device 101 executes it, or it can also be executed jointly by the terminal device 101 and the server 102.
  • the terminal device 101 or the server 102 that executes the sub-application running method in the embodiment of the present application is called an electronic device. That is to say, the sub-application running method provided by the embodiment of the present application can be executed by an electronic device.
  • the method includes steps 201 to 203.
  • Step 201 In response to the execution instruction of the target sub-application on the target operating system, obtain the page data of the target sub-application.
  • the target child application's runtime is provided by the parent application or runs independently of the parent application.
  • the target sub-application is developed based on the runtime environment provided by the parent application.
  • This runtime can also be called a runtime environment.
  • the runtime may include, for example, a runtime environment, a browser, an API, and native components (eg, native GUI components) that execute the sub-application's logic code.
  • the target sub-application is developed based on the runtime provided by the parent application, which is any application that can run on multiple operating systems, including the target operating system.
  • the code corresponding to the runtime provided by the parent application can be used as the framework code of the target sub-application.
  • the program file of the target sub-application is written to realize the development of the target sub-application. .
  • the program files of the target sub-application include the framework code of the target sub-application, etc.
  • the operating system of the electronic device is the target operating system
  • the target operating system includes Linux operating system, Windows operating system, macOS, Android operating system, iOS, etc.
  • the Linux operating system is a multi-user and multi-tasking operating system based on the Portable Operating System Interface (POSIX), supporting multi-threading and multi-Central Processing Unit (CPU).
  • POSIX Portable Operating System Interface
  • CPU Central Processing Unit
  • the electronic device can be a vehicle-mounted device.
  • the operating system of the vehicle-mounted device is generally a Linux operating system, and there is a lack of application programs.
  • running the sub-application in the vehicle-mounted device can enrich the vehicle ecology.
  • the electronic device can also be a business management device, and the operating system of the business management device can also be a Linux operating system.
  • Applications in business processing equipment need to be specially developed, with high development costs, long cycles and slow iterations.
  • running the sub-application in the business processing device can reduce development costs, increase iteration speed, and improve user experience.
  • the target sub-application can run on the target operating system.
  • the target sub-application can be any sub-application, and the embodiment of this application does not limit the type of the target sub-application.
  • the target sub-application is an instant messaging sub-application (used for instant messaging) or a video-type sub-application (can provide videos) or a game-type sub-application (supports game running).
  • the fertilized egg process can split into the main process and ensure that the main process runs on the target operating system of the electronic device (that is, ensure that the main process survives).
  • the main process is used to monitor the target sub-process. Instructions for the application to run on the target operating system.
  • the main process detects the running instruction of the target sub-application program on the target operating system, the electronic device can obtain the running instruction.
  • the target sub-application running instruction on the target operating system before obtaining the page data of the target sub-application, it also includes: displaying at least one candidate sub-application identifier based on the browser; responding to any candidate The selection operation of the sub-application identifier generates the execution instruction of the target sub-application corresponding to any candidate sub-application identifier.
  • the main process is used to manage the program files of each sub-application, where the program file of any sub-application includes the logic code of the sub-application and the page code of the sub-application, where the sub-application
  • the page code of the application includes the page data of the sub-application, the sub-application identification of the sub-application, etc.
  • Any browser is installed on the target operating system of the electronic device.
  • the browser can be the browser that comes with the target operating system, or it can be a third-party browser installed on the target operating system.
  • the browser includes the browser kernel. .
  • the browser kernel is the rendering engine used by the browser, which determines how the content, format information, etc. of the displayed page are displayed.
  • the browser kernel may include a Hyper Text Transfer Protocol (HTTP) client, and the main process may include an HTTP server, so that the browser kernel and the main process communicate through HTTP.
  • HTTP Hyper Text Transfer Protocol
  • the electronic device can obtain at least one sub-application identifier based on the main process, and each obtained sub-application identifier is each candidate sub-application. Identity, displays each candidate sub-application identification based on the browser. After detecting the selection operation for any candidate sub-application identifier, the electronic device generates an instruction to run the target sub-application corresponding to the candidate sub-application identifier on the target operating system. In response to the run instruction, page data of the target sub-application is obtained.
  • the browser kernel of the electronic device detects the selection operation for any candidate sub-application identifier, it generates a running instruction for the target sub-application corresponding to the candidate sub-application identifier on the target operating system, and Send the running instruction to the main process of the electronic device.
  • the main process sends the program file of the target sub-application to the browser kernel.
  • the program file of the target sub-application includes the page data of the target sub-application. That is to say, the browser kernel obtains the target sub-application. The program's page data.
  • obtaining the page data of the target sub-application includes: obtaining the logic code of the target sub-application based on the main process; in the runtime environment for executing the logic code, based on the target sub-application The service process of the application runs the logic code of the target sub-application; based on the running results of the main process and the logic code of the target sub-application, the page data of the target sub-application is obtained.
  • the main process after the main process obtains the running instruction of the target sub-application program on the target operating system, it sends the running instruction to the fertilized egg process.
  • the fertilized egg process splits out the service process of the target sub-application, sends the start instruction of the service process of the target sub-application to the main process, and establishes a cross-connection between the main process and the service process of the target sub-application. Process communication.
  • the main process sends the program file of the target sub-application to the service process of the target sub-application.
  • the program file of the target sub-application includes the logic code of the target sub-application and the frame code of the target sub-application.
  • the service process of the target sub-application of the electronic device obtains the program file of the target sub-application, it runs the logic code of the target sub-application and the framework code of the target sub-application to implement running in the runtime environment.
  • Logic code of the target sub-application get the target sub-application
  • the execution result of the logic code of the target sub-application is sent to the browser kernel.
  • the main process sends the program file of the target sub-application to the browser kernel, and the program file of the target sub-application includes the page data of the target sub-application.
  • the browser kernel determines the page data of the target sub-application from the program file of the target sub-application based on the execution result of the logic code of the target sub-application. In this way, the electronic device obtains the page data of the target sub
  • the logic code of the target sub-application is written based on the application program interface related to the target operating system.
  • the application program interface related to the target operating system is based on the running environment of a just-in-time compiled coding language, using a compiled coding language. Written.
  • the logic code of the target sub-application is written based on a large number of application program interfaces (Application Programming Interface, API).
  • API Application Programming Interface
  • These application program interfaces can be roughly divided into two categories.
  • One type is the application program interface related to the target operating system, such as the application program interface related to the file system, the network-related application program interface, and the other type is the application program interface related to the electronic device hardware, such as reading the camera Content-related application programming interface.
  • Figure 3 is a schematic diagram of a running environment of a just-in-time compiled coding language provided by an embodiment of the present application, where the running environment of the just-in-time compiled coding language is Node.js.
  • Node.js is suitable for target operating systems such as Windows operating system, Linux operating system, MacOS, Android operating system, iOS, etc. Based on Node.js, many application program interfaces related to the target operating system can be coded. These application program interfaces can be called Node .js API, among which, Node.js API includes application programming interfaces related to buffer (Buffer), application programming interfaces related to events (Events), application programming interfaces related to workers (Worker), and network (Network) related Application program interface, application program interface related to Inspector, application program interface related to File System (FS), application program interface related to stream (Stream), etc.
  • Buffer buffer
  • Events application programming interfaces related to events
  • Worker application programming interfaces related to workers
  • Network Network
  • Node.js has built-in bindings for multiple data transmission methods, including sockets, Hypertext Transfer Protocol, file systems, etc.
  • Node.js can support components written in C coding language and C++ coding language in the form of plug-ins.
  • components written in C coding language can be called C Add-ons and are written in C++ coding language.
  • the components can be called C++ add-ons (C++Add-ons), and C Add-ons or C++Add-ons can be collectively called C/C++Add-ons, also called N-API.
  • Node.js is embedded with V8, which is a JavaScript virtual machine used to run code written in the JavaScript coding language (JS coding language for short).
  • Node.js includes the Libuv library.
  • the Libuv library itself is written in C language and is highly portable. It supports thread pool (Thread Pool), event loop (Event Loop), asynchronous input/output (Async Input/Output, Async I/O).
  • Node.js also supports http_parser (a library related to HTTP parsers), OpenSSL (a cryptographic library), Zlib (a basic library), etc.
  • the HTTP parser is an HTTP message parser written in C coding language. It can parse requests and respond to requests.
  • OpenSSL is a Secure Sockets Layer cryptographic library, including cryptographic algorithms, key and certificate encapsulation management functions, and Secure Sockets Layer (Secure Sockets Layer, SSL) protocols.
  • Zlib is a function library that provides data compression.
  • the application program interface related to the target operating system can be written using the compiled coding language based on the running environment of Node.js or other just-in-time compiled coding languages other than Node.js.
  • compiled coding languages include just-in-time compiled coding languages such as JavaScript coding language, process-oriented coding languages such as C coding language, and object-oriented coding languages such as C++ coding language.
  • the cost of implementing APIs is reduced through the runtime environment of a just-in-time compiled coding language.
  • the application program interface related to the target operating system can run in the runtime environment of the just-in-time compiled coding language, or it can run In an operating environment other than that of a just-in-time compiled coding language.
  • the embodiments of this application do not limit other operating environments.
  • the application program interface related to the electronic device hardware needs to be based on the device information of the electronic device and written in the coding language supported by the electronic device.
  • the application program interface related to the electronic device hardware can run in the running environment of the just-in-time compiled coding language.
  • the main process and the service process of the target sub-application run in a runtime environment based on a just-in-time compiled coding language, and the main process and the service process of the target sub-application communicate through sockets.
  • both the main process and the service process of the target sub-application can be written in at least one of a just-in-time compiled coding language, a process-oriented coding language, or an object-oriented coding language, and run in a just-in-time compiled coding language. in the operating environment.
  • the main process and the service process of the target sub-application are split from the fertilized egg process.
  • the fertilized egg process can be compiled using just-in-time compilation. It is written in a coding language and runs in a runtime environment based on a just-in-time compiled coding language. Communication between the fertilized egg process and the main process, between the fertilized egg process and the service process of the target sub-application, and between the main process and the service process of the target sub-application is through sockets.
  • main process and the target sub-application's service process can also communicate with the browser kernel.
  • the communication between the main process and the browser kernel is through HTTP
  • the communication between the service process of the target sub-application and the browser kernel is through WebSocket.
  • At least one sub-application program can be run in the target operating system, and each sub-application program corresponds to a service process. Any sub-application program running in the target operating system can be the target sub-application program.
  • Step 202 Render the page data of the target sub-application through the browser to obtain the display page of the target sub-application.
  • the browser is any browser installed on the target operating system.
  • the page data of the target sub-application is written using web page (Web) front-end technology, and based on the browser kernel, the page data of the target sub-application is rendered to obtain the display page of the target sub-application.
  • Web web page
  • the sub-application user interface User Interface, UI
  • the page data includes native component data suitable for rendering by native components in the target operating system. Rendering the page data of the target sub-application through the browser to obtain the display page of the target sub-application includes:
  • the browser replaces the native components in the target operating system to render the native component data in the page data.
  • the same sub-application program in the embodiment of the present application can be executed in the operating systems of different native components, without the need to develop the sub-application programs for different native components respectively, thereby improving the performance of multiple devices (or operating systems). ), thereby improving the convenience of data processing in multiple devices (or operating systems).
  • the page data of the target sub-application includes native component data and non-native component data; the page data of the target sub-application is rendered to obtain the display page of the target sub-application, including: through the first The first rendering process renders the native component data to obtain the display page corresponding to the native component data; the second rendering process renders the non-native component data to obtain the display page corresponding to the non-native component data; based on the display page corresponding to the native component data The display page corresponding to the non-native component data determines the display page of the target sub-application.
  • Native component data is code data about native components
  • non-native component data is code data about non-native components.
  • the components on the display page of the target sub-application can be divided into native components and non-native components according to the rendering type.
  • Native components are rendered by the GUI framework of the operating system
  • non-native components are rendered by WebView.
  • both native components and non-native components are rendered by the web page view of the browser kernel.
  • the native component data is written using Web front-end technology
  • the web view renders the native component data through the first rendering process to obtain a display page corresponding to the native component data.
  • the non-native component data is also written using Web front-end technology.
  • the web view renders the non-native component data through the second rendering process to obtain a display page corresponding to the non-native component data.
  • non-native component data includes at least one iframe data.
  • Each inline frame data is used to represent the content data of a page, such as ⁇ iframe> code.
  • Rendering the non-native component data through the second rendering process to obtain a display page corresponding to the non-native component data includes: rendering each inline frame data through each second rendering process to obtain a display corresponding to each inline frame data Page; based on the display page corresponding to each inline frame data, determine the display page corresponding to the non-native component data.
  • the non-native component data includes at least one inline frame (Inner Frame) data.
  • Inner Frame Inner Frame
  • Any inline frame data is the data of the inline frame.
  • the inline frame is used to embed another inline frame anywhere in the web page.
  • Web page that is to say, one inline frame data corresponds to one web page, and the display page corresponding to the non-native component can be obtained based on at least one web page.
  • ⁇ iframe> can be used as the tag of an inline frame, so the inline frame data is the ⁇ iframe> code.
  • An ⁇ iframe> code is used to host a web page of the target sub-application.
  • the same domain can be assigned to the keywords of the URL in each inline frame data. Name, in order to render each inline frame data through the same rendering process to obtain the display page corresponding to each inline frame data.
  • the display pages corresponding to each inline frame data are spliced or superimposed to obtain the display page corresponding to the non-native component.
  • Figure 4 is a schematic diagram of a rendering process provided by an embodiment of the present application.
  • the browser kernel renders the page data of the target sub-application based on the browser process, where the page data of the sub-application includes native components. data and non-native component data.
  • rendering process A For the native component data, rendering process A renders the data corresponding to "domain name 1", which represents the domain name of "domain name 1" assigned to the keyword of the URL in the native component data, and renders the native component data through rendering process A.
  • rendering process B For non-native component data, rendering process B renders the data corresponding to "domain name 2/file name 1" and the data corresponding to "domain name 2/file name 2", indicating that the non-native component data includes two inline frame data. Assign the same domain name "domain name 2" to the keywords of the URLs in the two inline frame data, and render the two non-native component data through rendering process B.
  • "file name 1" is the file name of one inline frame data
  • "/" is the delimiter
  • file name 2 is the file name of another inline frame data.
  • each inline frame data when rendering at least one inline frame data, different domain names can be assigned to the keywords of the URLs in each inline frame data, so that each inline frame data can be rendered through different rendering processes to obtain The display page corresponding to each inline frame data.
  • Rendering each inline frame data separately through different rendering processes can reduce the amount of data in each rendering process and improve rendering efficiency.
  • a multi-core central processing unit CPU
  • it can reduce the occurrence of lagging.
  • the display pages corresponding to each inline frame data are spliced or superimposed to obtain the display page corresponding to the non-native component.
  • the display page corresponding to the native component data and the display page corresponding to the non-native component data can be superimposed to obtain the display page of the target sub-application.
  • the display page corresponding to the native component data can be superimposed on the display page corresponding to the non-native component data, or the display page corresponding to the non-native component data can be superimposed on the display page corresponding to the native component data.
  • Figure 5 is a display page of a target sub-application provided by an embodiment of the present application.
  • the display page of the target sub-application superimposes the display page corresponding to the non-native component data on the display page corresponding to the native component data.
  • the display page corresponding to the native component data includes each native component indicated by the reference number 501 and each native component indicated by the reference number 502.
  • the display page corresponding to the non-native component data includes each non-native component indicated by the reference number 503.
  • the page data of the target sub-application includes native component data and non-native component data; the page data of the target sub-application is rendered to obtain the display page of the target sub-application, including: through the first The first rendering process renders the native component data to obtain the display page corresponding to the native component data; through the second rendering process, the non-native component data is rendered on the display page corresponding to the native component data to obtain the display page of the target sub-application.
  • different domain names can be assigned to the keywords of the URL in the native component data and the keywords of the URL in the non-native component data, so that the native component data can be rendered through the first rendering process to obtain the corresponding URL of the native component data.
  • the display page through the second rendering process, renders the non-native component data on the display page corresponding to the native component data, so that the non-native component is directly rendered on the display page corresponding to the native component data, and the display of the target sub-application is obtained. page.
  • the non-native component data includes at least one iframe data.
  • the same domain name can be assigned to the URL keywords in each inline frame data, so that each inline frame data can be rendered on the display page corresponding to the native component data through the same second rendering process, and the target sub-application can be obtained. Display page.
  • the non-native component data includes at least one iframe data.
  • Different domain names can be assigned to the URL keywords in each inline frame data, so that each inline frame data can be rendered on the display page corresponding to the native component data through different second rendering processes to obtain the target sub-application. display page.
  • the priority of each second rendering process can be determined first, and each inline frame data is rendered sequentially on the display page corresponding to the native component data through each second rendering process according to the priority of each second rendering process. , get the display page of the target sub-application.
  • the page data of the target sub-application includes native component data and non-native component data; the page data of the target sub-application is rendered to obtain the display page of the target sub-application, including: through the first The second rendering process renders the non-native component data to obtain a display page corresponding to the non-native component data; through the first rendering process, the native component data is rendered on the display page corresponding to the non-native component data to obtain the target sub-application's display page. Display page.
  • different domain names can be assigned to the keywords of the URL in the native component data and the keywords of the URL in the non-native component data, so that the non-native component data can be rendered through the second rendering process to obtain the non-native component data.
  • the corresponding display page renders the native component data on the display page corresponding to the non-native component data through the first rendering process, so that the native component is directly rendered on the display page corresponding to the non-native component data, and the target sub-application is obtained display page.
  • non-native component data includes at least one iframe data.
  • the same domain name can be assigned to the URL keywords in each inline frame data, so that each inline frame data can be rendered through the same second rendering process, and the display page corresponding to each inline frame data can be obtained, and each inline frame data can be rendered.
  • the display pages corresponding to the frame data are superimposed or spliced to obtain the display pages corresponding to the non-native component data.
  • non-native component data includes at least one iframe data.
  • Different domain names can be assigned to the URL keywords in each inline frame data, so that each inline frame data can be rendered separately through different second rendering processes to obtain the display page corresponding to each inline frame data, and each inline frame data can be rendered.
  • the display pages corresponding to the frame data are overlaid or spliced to obtain the display pages corresponding to the non-native component data.
  • the first rendering process can also run framework code with target sub-applications.
  • the target sub-application is developed based on the framework code of the target sub-application.
  • the embodiments of this application do not limit the parent application.
  • the parent application is an instant messaging application or a financial application.
  • Step 203 Display the display page of the target sub-application based on the browser.
  • the browser kernel can run the framework code of the target sub-application, so that the browser can provide the runtime of the sub-application.
  • the display page of the target sub-application is displayed based on the browser, so that the user can operate on the display page.
  • the display page of the target sub-application contains a QR code.
  • the method further includes: in response to obtaining the scan of the QR code by the parent application.
  • the code confirmation instruction displays the jump page of the display page of the target sub-application based on the browser.
  • the display page of the target sub-application may contain a QR code (Quick Response Code, QR Code).
  • QR code is a kind of code that uses a certain geometric figure and is distributed in a plane according to a certain rule.
  • a black and white graphic that records data symbol information.
  • the display page of the target sub-application may include a QR code for scanning the QR code to log in, or when the display page of the target sub-application is a payment page, the target sub-application may display a QR code to log in.
  • the display page of the sub-application may include a QR code for scanning and payment.
  • the user can use the code scanning function in the parent application to scan the QR code to obtain the scan result page.
  • the scan code result page includes a confirmation control.
  • the electronic device can receive the scan code confirmation instruction for the QR code through the parent application.
  • the display page of the target sub-application is displayed based on the browser. Jump page.
  • the electronic device where the parent application is located can be a different electronic device than the electronic device where the browser is located, or they can be the same electronic device, which is not limited in the embodiments of this application.
  • Figure 6 is a sub-application provided by the embodiment of the present application. Frame diagram of program execution.
  • the electronic device in the embodiment of the present application includes a browser kernel, a main process, a service process of a target sub-application, and a fertilized egg process.
  • the fertilized egg process can split into the main process and the service process of the target sub-application, and manage the main process and the service process of the target sub-application to ensure that the main process and the service process of the target sub-application can communicate across processes. Therefore, the zygote process functions as a cross-process communication hub.
  • the main process is written in JS coding language and C++ coding language.
  • the code written in JS coding language is called JS code.
  • the JS code corresponds to the JS runtime environment, which includes an HTTP server (a server that uses HTTP communication) and is used to communicate with the HTTP client (a client that uses HTTP communication) process of the browser kernel.
  • the JS runtime environment can also manage sub-applications.
  • Code written in the C++ coding language is called C++ code.
  • the C++ code includes Node.js plug-in (also called Node Addon).
  • Node Addon supports sub-application hardware framework (Wechat Mini-Program Framework, WMPF) service, common gateway interface (Common Gateway Interface, CGI), and sub-application package management. Conversation with the user.
  • the sub-application software package is the program file of the sub-application mentioned above, and the program file of the sub-application includes the sub-application page Surface code, sub-application logic code and sub-application framework code.
  • the sub-application framework code is the framework code of the target sub-application mentioned above.
  • Node Addon supports basic libraries, which include but are not limited to C++ public libraries (such as wxbase), log libraries (such as wxlog), inter-process communication libraries (such as wxipc), software development package libraries (such as ilink), databases (such as mmkv ), thread libraries (such as Future), etc.
  • JS code and C++ code are related through N-API technology.
  • the browser core includes public scope and sub-application page scope.
  • the public scope is equivalent to the first rendering process mentioned above, which is used to render native component data.
  • the public scope includes the HTTP client, which is used to communicate with the HTTP server in the main process.
  • the public scope can also include the WS client (the client that uses WebSocket communication), which is used to communicate with the WS server (the server that uses WebSocket communication) in the service process of the target sub-application.
  • the public scope can render native components, has the function of a debugger, can run sub-application framework code, and supports logging libraries.
  • the sub-application page scope is equivalent to the second rendering process mentioned above, which is used to render non-native component data.
  • the sub-application page scope supports the sub-application basic library and can run the sub-application page code.
  • the sub-application page scope and the public scope communicate through message channels.
  • the service process of the target sub-application is written in JS coding language and C++ coding language.
  • the code written in JS coding language is called JS code.
  • JS code can be divided into two parts: sub-application logical scope and public scope.
  • the sub-application logic scope supports the sub-application base library and can run the sub-application logic code.
  • the public scope includes the WS server and is used to communicate with the WS client in the browser.
  • the public scope runs sub-application framework code and has the function of a debugger.
  • Subapplication logical scopes and public scopes communicate through message channels.
  • Code written in the C++ coding language is called C++ code.
  • the C++ code includes Node.js plug-ins, which support inter-process communication libraries, log libraries, and code cache management.
  • JS code and C++ code are related through N-API technology.
  • the main process and the service process of the target sub-application communicate through Inter-Process Communication (IPC).
  • the main process communicates with the browser kernel through HTTP, and the browser kernel communicates with the service process of the target sub-application. Communicates via WebSocket.
  • IPC communication can be Socket communication.
  • the fertilized egg process first splits into the main process.
  • the fertilized egg process splits out the service process of the target sub-application and establishes an IPC channel between the main process and the service process of the target sub-application so that IPC communication between the main process and the service process of the target sub-application.
  • the service process of the target sub-application obtains the sub-application software package of the target sub-application based on the main process.
  • the sub-application package of the target sub-application includes the sub-application logic code of the target sub-application and the code of the target sub-application.
  • Sub-application framework code The target subapplication's service process runs the target subapplication's subapplication logic code and the target subapplication's subapplication framework code.
  • the service process of the target sub-application can provide the runtime of the sub-application, and run the sub-application logic code of the target sub-application in the runtime to obtain the target
  • the execution result of the sub-application logic code of the sub-application can be called the first execution result).
  • the public scope in the service process of the target sub-application runs the sub-application framework code of the target sub-application
  • the sub-application logical scope in the service process of the target sub-application runs the sub-application of the target sub-application.
  • Logic code, the sub-application logic code of the target sub-application is the logic code of the target sub-application mentioned above.
  • the browser kernel obtains the sub-application package of the target sub-application through the main process.
  • the browser kernel obtains the running results of the sub-application logic code of the target sub-application through the service process of the target sub-application. Determine the page data of the target sub-application in the application software package, and render the page data of the target sub-application.
  • the sub-application software package of the target sub-application includes the sub-application framework code of the target sub-application and the sub-application page code of the target sub-application.
  • the browser kernel determines the native component data from the sub-application framework code of the target sub-application and determines the native component data from the sub-application page code of the target sub-application.
  • Non-native component data obtain the page data of the target sub-application (can be called the first page data).
  • the page data of the target sub-application includes native component data and non-native component data.
  • the public scope of the browser core renders the native component data and obtains the display page corresponding to the native component data.
  • the sub-application page scope of the browser core renders the non-native component data and obtains the display page corresponding to the non-native component data. .
  • the display page of the target sub-application (which may be called the first display page) is obtained.
  • the public scope of the browser core runs the sub-application framework code of the target sub-application and renders native component data
  • the sub-application page scope of the browser core renders non-native component data .
  • the browser can provide the runtime of the sub-application, and during the runtime, display the display page of the target sub-application based on the browser.
  • the main process can also communicate with the parent application via CGI.
  • the main process can receive a code scanning confirmation instruction from the parent application for the QR code contained on the display page of the target sub-application, and send the code scanning confirmation instruction to the service process of the target sub-application, so that the target sub-application Based on the code scanning confirmation instruction, the service process of the application program runs the logic code of the target sub-application program again during runtime to obtain a new running result of the logic code of the target sub-application program (which can be called the second running result).
  • the browser kernel obtains the second running result through the service process of the target sub-application, and based on the second result, determines the new page data of the target sub-application (which may be called the third page data) from the sub-application software package of the target sub-application. second page data), and renders the second page data to obtain a new display page of the target sub-application (which can be called a second display page).
  • the second display page is displayed based on the browser.
  • the display page of the target sub-application contained in the QR code can be a login page, and the main process can manage the user login status through CGI communication with the parent application.
  • the display page of the target sub-application contained in the QR code can be a payment page, and the main process can manage the payment status through CGI communication with the parent application.
  • the information including but not limited to user equipment information, user personal information, etc.
  • data including but not limited to data used for analysis, stored data, displayed data, etc.
  • signals involved in this application All are authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions.
  • the page data of the target sub-application and the logic code of the target sub-application involved in this application were all obtained with full authorization.
  • the above method is based on the browser kernel of the browser on the target operating system, rendering the page data of the target sub-application, and obtaining the display page of the target sub-application. Since the browser kernel has nothing to do with the release version of the target operating system, therefore, It can be implemented in the target operating system of each release version, based on the browser kernel, the page data of the target sub-application is rendered, the display page of the target sub-application is obtained, and the display page of the target sub-application is displayed based on the browser, achieving to run the target sub-application in each release of the target operating system.
  • Figure 7 shows a schematic structural diagram of a sub-application running device provided by an embodiment of the present application. As shown in Figure 7, the device includes:
  • Acquisition module 701 configured to obtain page data of the target sub-application in response to the execution instruction of the target sub-application on the target operating system.
  • the runtime of the target sub-application is provided by the parent application or independently. Run on said parent application;
  • the rendering module 702 is used to render the page data of the target sub-application through a browser, and obtain the display page of the target sub-application.
  • the browser is any browser installed on the target operating system. ;
  • the display module 703 is configured to display the display page of the target sub-application based on the browser.
  • the device further includes:
  • the display module 703 is also configured to display at least one candidate sub-application identifier based on the browser;
  • a generation module configured to generate an execution instruction for a target sub-application corresponding to any candidate sub-application ID in response to a selection operation for any candidate sub-application ID.
  • the page data of the target sub-application includes native component data and non-native component data; the rendering module 702 is used to render the native component data through the first rendering process to obtain the corresponding native component data. Display the page; render the non-native component data through the second rendering process to obtain the display page corresponding to the non-native component data; determine the target sub-application based on the display page corresponding to the native component data and the display page corresponding to the non-native component data Display page.
  • the non-native component data includes at least one inline frame data; each inline frame data is used to represent the content data of a page.
  • the rendering module 702 is used to render each inline frame data through each second rendering process to obtain the display page corresponding to each inline frame data; based on the display page corresponding to each inline frame data, determine the non-native component data correspondence display page.
  • the page data of the target sub-application includes native component data and non-native component data; the rendering module 702 is used to render the native component data through the first rendering process to obtain the corresponding native component data. Display the page; through the second rendering process, render the non-native component data on the display page corresponding to the native component data to obtain the display page of the target sub-application.
  • the page data of the target sub-application includes native component data and non-native component data; the rendering module 702 is used to render the non-native component data through the second rendering process to obtain the non-native component data.
  • the acquisition module 701 is used to obtain the logic code of the target sub-application based on the main process; used to execute the logic code during runtime in the running environment, based on the service process of the target sub-application. Run the logic code of the target sub-application; obtain the page data of the target sub-application based on the running results of the logic code of the main process and the target sub-application.
  • the logic code of the target sub-application is written based on an application program interface related to the target operating system, and the application program interface related to the target operating system is based on a runtime environment of a just-in-time compiled coding language. Written in a compiled coding language.
  • the main process and the service process of the target sub-application run in a runtime environment based on a just-in-time compiled coding language, and the main process and the service process of the target sub-application communicate through sockets.
  • the display page of the target sub-application contains a QR code
  • the display module 703 is also configured to display the target based on the browser in response to obtaining a scan confirmation instruction for the QR code from the parent application.
  • the above device is based on the browser kernel of the browser on the target operating system, rendering the page data of the target sub-application, and obtaining the display page of the target sub-application. Since the browser kernel has nothing to do with the release version of the target operating system, therefore, It can be implemented in the target operating system of each release version, based on the browser kernel, the page data of the target sub-application is rendered, the display page of the target sub-application is obtained, and the display page of the target sub-application is displayed based on the browser, achieving to run the target sub-application in each release of the target operating system.
  • FIG 8 shows a structural block diagram of a terminal device 800 provided by an exemplary embodiment of the present application.
  • the terminal device 800 includes: a processor 801 and a memory 802.
  • the processor 801 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc.
  • the processor 801 can adopt at least one hardware form among DSP (Digital Signal Processing, digital signal processing), FPGA (Field-Programmable Gate Array, field programmable gate array), and PLA (Programmable Logic Array, programmable logic array).
  • DSP Digital Signal Processing, digital signal processing
  • FPGA Field-Programmable Gate Array, field programmable gate array
  • PLA Programmable Logic Array, programmable logic array
  • the processor 801 can also include a main processor and a co-processor.
  • the main processor is a processor used to process data in the wake-up state, also called CPU (Central Processing Unit, central processing unit); the co-processor is A low-power processor used to process data in standby mode.
  • the processor 801 may be integrated with a GPU (Graphics Processing Unit, image processor), and the GPU is responsible for rendering and drawing content that needs to be displayed on the display screen.
  • the processor 801 may also include an AI (Artificial Intelligence, artificial intelligence) processor, which is used to process computing operations related to machine learning.
  • AI Artificial Intelligence, artificial intelligence
  • Memory 802 may include one or more computer-readable storage media, which may be non-transitory. Memory 802 may also include high-speed random access memory, and non-volatile memory, such as one or more disk storage devices, flash memory storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 802 is used to store at least one computer program, and the at least one computer program is used to be executed by the processor 801 to implement the methods provided by the method embodiments in this application. Subapplication running method.
  • the terminal device 800 optionally further includes: a peripheral device interface 803 and at least one peripheral device.
  • the processor 801, the memory 802 and the peripheral device interface 803 may be connected through a bus or a signal line.
  • Each peripheral device can be connected to the peripheral device interface 803 through a bus, a signal line or a circuit board.
  • the peripheral equipment includes: radio frequency circuit 804, display screen 805, camera At least one of head assembly 806, audio circuit 807, and power supply 808.
  • the peripheral device interface 803 may be used to connect at least one I/O (Input/Output, input/output) related peripheral device to the processor 801 and the memory 802 .
  • the processor 801, the memory 802, and the peripheral device interface 803 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 801, the memory 802, and the peripheral device interface 803 or Both of them can be implemented on separate chips or circuit boards, which is not limited in this embodiment.
  • the radio frequency circuit 804 is used to receive and transmit RF (Radio Frequency, radio frequency) signals, also called electromagnetic signals. Radio frequency circuit 804 communicates with communication networks and other communication devices through electromagnetic signals. The radio frequency circuit 804 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals. Optionally, the radio frequency circuit 804 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, and the like. Radio frequency circuitry 804 can communicate with other terminals through at least one wireless communication protocol.
  • RF Radio Frequency, radio frequency
  • the wireless communication protocol includes but is not limited to: World Wide Web, metropolitan area network, intranet, mobile communication networks of all generations (2G, 3G, 4G and 5G), wireless LAN and/or WiFi (Wireless Fidelity, Wireless Fidelity) network.
  • the radio frequency circuit 804 may also include NFC (Near Field Communication) related circuits, which is not limited in this application.
  • the display screen 805 is used to display UI (User Interface, user interface).
  • the UI can include graphics, text, icons, videos, and any combination thereof.
  • display screen 805 is a touch display screen
  • display screen 805 also has the ability to collect touch signals on or above the surface of display screen 805 .
  • the touch signal can be input to the processor 801 as a control signal for processing.
  • the display screen 805 can also be used to provide virtual buttons and/or virtual keyboards, also called soft buttons and/or soft keyboards.
  • the display screen 805 may be a flexible display screen, disposed on the curved surface or folding surface of the terminal device 800. Even the display screen 805 can be set into a non-rectangular irregular shape, that is, a special-shaped screen.
  • the display screen 805 can be made of LCD (Liquid Crystal Display, liquid crystal display), OLED (Organic Light-Emitting Diode, organic light-emitting diode) and other materials.
  • the camera assembly 806 is used to capture images or videos.
  • the camera assembly 806 includes a front camera and a rear camera.
  • the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal.
  • there are at least two rear cameras one of which is a main camera, a depth-of-field camera, a wide-angle camera, and a telephoto camera, so as to realize the integration of the main camera and the depth-of-field camera to realize the background blur function.
  • camera assembly 806 may also include a flash.
  • the flash can be a single color temperature flash or a dual color temperature flash. Dual color temperature flash refers to a combination of warm light flash and cold light flash, which can be used for light compensation under different color temperatures.
  • Audio circuitry 807 may include a microphone and speakers.
  • the microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals that are input to the processor 801 for processing, or to the radio frequency circuit 804 to implement voice communication. For the purpose of stereo collection or noise reduction, there may be multiple microphones, which are respectively arranged at different parts of the terminal device 800 .
  • the microphone can also be an array microphone or an omnidirectional collection microphone.
  • the speaker is used to convert electrical signals from the processor 801 or the radio frequency circuit 804 into sound waves.
  • the loudspeaker can be a traditional membrane loudspeaker or a piezoelectric ceramic loudspeaker.
  • audio circuitry 807 may also include a headphone jack.
  • the power supply 808 is used to power various components in the terminal device 800 .
  • Power source 808 may be AC, DC, disposable batteries, or rechargeable batteries.
  • the rechargeable battery may be a wired rechargeable battery or a wireless rechargeable battery. Wired rechargeable batteries are batteries that are charged through wired lines, and wireless rechargeable batteries are batteries that are charged through wireless coils.
  • the rechargeable battery can also be used to support fast charging technology.
  • the terminal device 800 further includes one or more sensors 809.
  • the one or more sensors 809 include, but are not limited to: an acceleration sensor 811 , a gyroscope sensor 812 , a pressure sensor 813 , an optical sensor 814 and a proximity sensor 815 .
  • the acceleration sensor 811 can detect the acceleration on the three coordinate axes of the coordinate system established by the terminal device 800 .
  • the acceleration sensor 811 can be used to detect the components of gravity acceleration on three coordinate axes.
  • the processor 801 can control the display screen 805 to display the user interface in a horizontal view or a vertical view according to the gravity acceleration signal collected by the acceleration sensor 811 .
  • acceleration The sensor 811 can also be used to collect game or user motion data.
  • the gyro sensor 812 can detect the body direction and rotation angle of the terminal device 800 , and the gyro sensor 812 can cooperate with the acceleration sensor 811 to collect the user's 3D movements on the terminal device 800 . Based on the data collected by the gyro sensor 812, the processor 801 can implement the following functions: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.
  • the pressure sensor 813 may be provided on the side frame of the terminal device 800 and/or on the lower layer of the display screen 805 .
  • the pressure sensor 813 When the pressure sensor 813 is disposed on the side frame of the terminal device 800, it can detect the user's grip signal on the terminal device 800, and the processor 801 performs left and right hand identification or quick operation based on the grip signal collected by the pressure sensor 813.
  • the processor 801 controls the operability controls on the UI interface according to the user's pressure operation on the display screen 805.
  • the operability control includes at least one of a button control, a scroll bar control, an icon control, and a menu control.
  • Optical sensor 814 is used to collect ambient light intensity.
  • the processor 801 can control the display brightness of the display screen 805 according to the ambient light intensity collected by the optical sensor 814. Specifically, when the ambient light intensity is high, the display brightness of the display screen 805 is increased; when the ambient light intensity is low, the display brightness of the display screen 805 is decreased.
  • the processor 801 can also dynamically adjust the shooting parameters of the camera assembly 806 according to the ambient light intensity collected by the optical sensor 814.
  • the proximity sensor 815 also called a distance sensor, is usually provided on the front panel of the terminal device 800.
  • the proximity sensor 815 is used to collect the distance between the user and the front of the terminal device 800 .
  • the processor 801 controls the display screen 805 to switch from the bright screen state to the closed screen state; when the proximity sensor 815 detects When the distance between the user and the front of the terminal device 800 gradually increases, the processor 801 controls the display screen 805 to switch from the screen-off state to the screen-on state.
  • FIG. 8 does not constitute a limitation on the terminal device 800, and may include more or fewer components than shown, or combine certain components, or adopt different component arrangements.
  • FIG. 9 is a schematic structural diagram of a server provided by an embodiment of the present application.
  • the server 900 may vary greatly due to different configurations or performance, and may include one or more processors 901 and one or more memories 902, where, At least one computer program is stored in the one or more memories 902, and the at least one computer program is loaded and executed by the one or more processors 901 to implement the sub-application running method provided by the above method embodiments.
  • the processor 901 is a CPU.
  • the server 900 may also have components such as wired or wireless network interfaces, keyboards, and input and output interfaces for input and output.
  • the server 900 may also include other components for implementing device functions, which will not be described again here.
  • a computer-readable storage medium is also provided. At least one computer program is stored in the storage medium. The at least one computer program is loaded and executed by the processor to enable the electronic device to implement any of the above seeds. Application running method.
  • the above computer-readable storage medium may be read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), read-only compact disc (Compact Disc Read-Only Memory, CD-ROM) ), tapes, floppy disks and optical data storage devices, etc.
  • a computer program or computer program product is also provided. At least one computer program is stored in the computer program or computer program product. The at least one computer program is loaded and executed by the processor, so that the computer implements Any of the above seed application running methods.

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

子应用程序的运行方法、装置、电子设备、程序产品及存储介质
本申请要求于2022年03月08日提交中国专利局、申请号为202210220011.5、申请名称为“子应用程序运行方法、装置、电子设备及可读存储介质”的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种子应用程序的运行方法、装置、电子设备、程序产品及存储介质。
背景技术
随着计算机技术的不断发展,子应用程序得到了广泛的应用。子应用程序也叫小程序,是一种不需要下载和安装即可运行的程序。子应用程序的运行通常依赖于母应用程序,母应用程序提供子应用程序的基础运行环境。
相关技术中,子应用程序可以运行在安卓(Android)操作系统(Operating System,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,响应于目标子应用程序在目标操作系统上的运行指令,获取目标子应用程序的页面数据。目标子应用程序的运行时是由母应用程序提供的或者独立于所述母应用程序而运行。在一个实施例中,目标子应用程序是基于母应用程序提供的运行环境开发得到的。这里运行时也可以称为运行时环境。运行时例如可以包括执行子应用程序的逻辑代码的运行环境、浏览器、API和原生组件(例如原生GUI组件)。
例如,目标子应用程序是基于母应用程序提供的运行时开发得到的,母应用程序是任意的应用程序,可以运行在包括目标操作系统在内的多个操作系统中。母应用程序提供的运行时所对应的代码可以作为目标子应用程序的框架代码,在目标子应用程序的框架代码的基础上编写得到目标子应用程序的程序文件,实现对目标子应用程序的开发。其中,目标子应用程序的程序文件包括目标子应用程序的框架代码等。
本申请实施例中,电子设备的操作系统为目标操作系统,目标操作系统包括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前端技术编写得到的,由网页视图通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面。与在同一个进程中渲染渲染原生组件数据和非原生组件数据相比,通过两个渲染进程分别独立的渲染原生组件数据和非原生组件数据,可以减少渲染进程需要渲染的数据量,防止卡顿现象的发生,从而有助于提高对运行子应用程序的电子设备的响应速度和执行效率。
可选的,非原生组件数据包括至少一个内联框架数据。每个内联框架数据用于表示一个页面的内容数据,例如为<iframe>代码。通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面,包括:通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面;基于各个内联框架数据对应的显示页面,确定非原生组件数据对应的显示页面。
本申请实施例中,非原生组件数据包括至少一个内联框架(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的关键词赋予不同的域名,以通过不同的渲染进程分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面。通过不同的渲染进程分别对各个内联框架数据进行渲染,能够降低每一个渲染进程的数据量,提高渲染效率,结合多核中央处理器(Central Processing Unit,CPU),能降低卡顿现象的发生。之后,将各个内联框架数据对应的显示页面进行拼接或者叠加等,得到非原生组件对应的显示页面。
在得到原生组件数据对应的显示页面和非原生组件数据对应的显示页面之后,可以将原生组件数据对应的显示页面和非原生组件数据对应的显示页面进行叠加,得到目标子应用程序的显示页面。可选的,可以将原生组件数据对应的显示页面叠加在非原生组件数据对应的显示页面之上,也可以将非原生组件数据对应的显示页面叠加在原生组件数据对应的显示页面之上,在本申请实施例中不做限定。也可以将原生组件数据对应的显示页面和非原生组件数据对应的显示页面进行拼接,得到目标子应用程序的显示页面。
请参见图5,图5是本申请实施例提供的一种目标子应用程序的显示页面,目标子应用程序的显示页面是将非原生组件数据对应的显示页面叠加在原生组件数据对应的显示页面之上得到的。其中,原生组件数据对应的显示页面包括标号501所示的各个原生组件以及标号502所示的各个原生组件,非原生组件数据对应的显示页面包括标号503所示的各个非原生组件。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,包括:通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面;通过第二渲染进程,在原生组件数据对应的显示页面上对非原生组件数据进行渲染,得到目标子应用程序的显示页面。
本申请实施例中,可以为原生组件数据中URL的关键词和非原生组件数据中URL的关键词赋予不同的域名,以通过第一渲染进程对原生组件数据进行渲染,得到原生组件数据对应的显示页面,通过第二渲染进程,在原生组件数据对应的显示页面上对非原生组件数据进行渲染,以将非原生组件直接渲染在原生组件数据对应的显示页面上,得到目标子应用程序的显示页面。
在一个实施例中,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予相同的域名,以通过同一个第二渲染进程,在原生组件数据对应的显示页面上对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。
在一个实施例中,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予不同的域名,以通过不同的第二渲染进程,在原生组件数据对应的显示页面上分别对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。其中,可以先确定各个第二渲染进程的优先级,通过各个第二渲染进程,按照各个第二渲染进程的优先级,依次在原生组件数据对应的显示页面上分别对各个内联框架数据进行渲染,得到目标子应用程序的显示页面。
在一种可能的实现方式中,目标子应用程序的页面数据包括原生组件数据和非原生组件数据;对目标子应用程序的页面数据进行渲染,得到目标子应用程序的显示页面,包括:通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面;通过第一渲染进程,在非原生组件数据对应的显示页面上对原生组件数据进行渲染,得到目标子应用程序的显示页面。
本申请实施例中,可以为原生组件数据中URL的关键词和非原生组件数据中URL的关键词赋予不同的域名,以通过第二渲染进程对非原生组件数据进行渲染,得到非原生组件数据对应的显示页面,通过第一渲染进程,在非原生组件数据对应的显示页面上对原生组件数据进行渲染,以将原生组件直接渲染在非原生组件数据对应的显示页面上,得到目标子应用程序的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予相同的域名,以通过同一个第二渲染进程,对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面,将各个内联框架数据对应的显示页面进行叠加或者拼接,得到非原生组件数据对应的显示页面。
可选的,非原生组件数据包括至少一个内联框架数据。可以为各个内联框架数据中URL的关键词赋予不同的域名,以通过不同的第二渲染进程,分别对各个内联框架数据进行渲染,得到各个内联框架数据对应的显示页面,将各个内联框架数据对应的显示页面进行叠加或者拼接,得到非原生组件数据对应的显示页面。
需要说明的是,第一渲染进程除可以对原生组件数据进行渲染之外,还可以运行有目标子应用程序的框架代码。其中,目标子应用程序是基于目标子应用程序的框架代码开发得到的。本申请实施例不对母应用程序做限定,示例性的,母应用程序为即时通讯应用程序或者金融类应用程序。
步骤203,基于浏览器显示目标子应用程序的显示页面。
本申请实施例中,浏览器内核可以运行目标子应用程序的框架代码,以使浏览器可以提供子应用程序的运行时。在浏览器提供了子应用程序的运行时的基础上,基于浏览器显示目标子应用程序的显示页面,以便于用户基于对显示页面进行操作。
在一种可能的实现方式中,目标子应用程序的显示页面包含二维码,基于浏览器显示目标子应用程序的显示页面之后,还包括:响应于获取到母应用程序针对二维码的扫码确认指令,基于浏览器显示目标子应用程序的显示页面的跳转页面。
本申请实施例中,目标子应用程序的显示页面中可能包含有二维码(Quick Response 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-Process Communication,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 Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器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-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一种子应用程序运行方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

  1. 一种子应用程序的运行方法,在电子设备中执行,所述方法包括:
    响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序的运行时是由母应用程序提供的或者独立于所述母应用程序而运行;
    通过浏览器对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
    基于所述浏览器显示所述目标子应用程序的显示页面。
  2. 根据权利要求1所述的方法,其中,所述页面数据包括适合由所述目标操作系统中原生组件渲染的原生组件数据;所述通过浏览器对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
    由所述浏览器替代所述目标操作系统中原生组件来所述渲染所述页面数据中所述原生组件数据。
  3. 根据权利要求1所述的方法,其中,所述响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据之前,还包括:
    基于所述浏览器显示至少一个候选子应用程序标识;
    响应于针对任一个候选子应用程序标识的选中操作,生成所述任一个候选子应用程序标识对应的目标子应用程序的运行指令。
  4. 根据权利要求1所述的方法,其中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
    通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;
    通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;
    基于所述原生组件数据对应的显示页面和所述非原生组件数据对应的显示页面,确定所述目标子应用程序的显示页面。
  5. 根据权利要求4所述的方法,其中,所述非原生组件数据包括至少一个内联框架数据,其中,每个内联框架数据用于表示一个页面的内容数据;所述通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面,包括:
    通过各个第二渲染进程分别对各个内联框架数据进行渲染,得到所述各个内联框架数据对应的显示页面;
    基于所述各个内联框架数据对应的显示页面,确定所述非原生组件数据对应的显示页面。
  6. 根据权利要求1所述的方法,其中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
    通过第一渲染进程对所述原生组件数据进行渲染,得到所述原生组件数据对应的显示页面;
    通过第二渲染进程,在所述原生组件数据对应的显示页面上对所述非原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
  7. 根据权利要求1所述的方法,其中,所述目标子应用程序的页面数据包括原生组件数据和非原生组件数据;所述对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,包括:
    通过第二渲染进程对所述非原生组件数据进行渲染,得到所述非原生组件数据对应的显示页面;
    通过第一渲染进程,在所述非原生组件数据对应的显示页面上对所述原生组件数据进行渲染,得到所述目标子应用程序的显示页面。
  8. 根据权利要求1所述的方法,其中,所述获取所述目标子应用程序的页面数据,包括:
    基于主进程获取所述目标子应用程序的逻辑代码;
    在所述运行时中用于执行所述逻辑代码的运行环境中,基于所述目标子应用程序的服务进程运行所述目标子应用程序的逻辑代码;
    基于所述主进程和所述目标子应用程序的逻辑代码的运行结果,获取所述目标子应用程序的页面数据。
  9. 根据权利要求8所述的方法,其中,所述目标子应用程序的逻辑代码是基于与目标操作系统相关的应用程序接口编写的,所述与目标操作系统相关的应用程序接口是基于即时编译型编码语言的所述运行环境,采用编译型编码语言编写的。
  10. 根据权利要求8所述的方法,其中,所述主进程和所述目标子应用程序的服务进程是基于即时编译型编码语言的所述运行环境运行的,所述主进程和所述目标子应用程序的服务进程之间通过套接字通信。
  11. 根据权利要求1至10任一项所述的方法,其中,所述目标子应用程序的显示页面包含二维码,所述基于所述浏览器显示所述目标子应用程序的显示页面之后,还包括:
    响应于获取到所述母应用程序针对所述二维码的扫码确认指令,基于所述浏览器显示所述目标子应用程序的显示页面的跳转页面。
  12. 一种子应用程序运行装置,所述装置包括:
    获取模块,用于响应于目标子应用程序在目标操作系统上的运行指令,获取所述目标子应用程序的页面数据,所述目标子应用程序的运行时是由母应用程序提供的或者独立于所述母应用程序而运行;
    渲染模块,用于通过浏览器对所述目标子应用程序的页面数据进行渲染,得到所述目标子应用程序的显示页面,所述浏览器是安装在所述目标操作系统上的任意浏览器;
    显示模块,用于基于所述浏览器显示所述目标子应用程序的显示页面。
  13. 一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现如权利要求1至11任一所述的子应用程序运行方法。
  14. 一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至11任一所述的子应用程序运行方法。
  15. 一种计算机程序产品,所述计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至11任一所述的子应用程序运行方法。
PCT/CN2023/075850 2022-03-08 2023-02-14 子应用程序的运行方法、装置、电子设备、程序产品及存储介质 WO2023169157A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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 (2)

Application Number Priority Date Filing Date Title
CN202210220011.5 2022-03-08
CN202210220011.5A CN116775164A (zh) 2022-03-08 2022-03-08 子应用程序运行方法、装置、电子设备及可读存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/379,651 Continuation US20240036891A1 (en) 2022-03-08 2023-10-12 Sub-application running method and apparatus, electronic device, program product, and storage medium

Publications (1)

Publication Number Publication Date
WO2023169157A1 true WO2023169157A1 (zh) 2023-09-14

Family

ID=87937186

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/075850 WO2023169157A1 (zh) 2022-03-08 2023-02-14 子应用程序的运行方法、装置、电子设备、程序产品及存储介质

Country Status (3)

Country Link
US (1) US20240036891A1 (zh)
CN (1) CN116775164A (zh)
WO (1) WO2023169157A1 (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457621A (zh) * 2019-08-15 2019-11-15 腾讯科技(深圳)有限公司 一种混合应用的页面显示方法、装置及介质
CN110704136A (zh) * 2019-09-27 2020-01-17 北京百度网讯科技有限公司 小程序组件的渲染方法、客户端、电子设备及存储介质
CN110750255A (zh) * 2019-09-25 2020-02-04 支付宝(杭州)信息技术有限公司 一种小程序渲染方法和装置
CN111198730A (zh) * 2018-10-30 2020-05-26 广州腾讯科技有限公司 子应用程序启动的方法、装置、终端及计算机存储介质
CN112035172A (zh) * 2020-09-03 2020-12-04 腾讯科技(深圳)有限公司 操作系统启动方法、装置、服务器及存储介质
CN112307403A (zh) * 2020-11-12 2021-02-02 Oppo(重庆)智能科技有限公司 页面渲染方法、装置、存储介质以及终端
CN112331235A (zh) * 2021-01-04 2021-02-05 腾讯科技(深圳)有限公司 多媒体内容的编辑控制方法、装置、电子设备和存储介质
CN112416613A (zh) * 2020-10-23 2021-02-26 腾讯科技(深圳)有限公司 一种应用数据处理方法、装置、设备以及介质
WO2021052437A1 (zh) * 2019-09-19 2021-03-25 华为技术有限公司 一种应用启动方法及电子设备
CN114077368A (zh) * 2022-01-19 2022-02-22 腾讯科技(深圳)有限公司 车载小程序运行方法、装置、计算机设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198730A (zh) * 2018-10-30 2020-05-26 广州腾讯科技有限公司 子应用程序启动的方法、装置、终端及计算机存储介质
CN110457621A (zh) * 2019-08-15 2019-11-15 腾讯科技(深圳)有限公司 一种混合应用的页面显示方法、装置及介质
WO2021052437A1 (zh) * 2019-09-19 2021-03-25 华为技术有限公司 一种应用启动方法及电子设备
CN110750255A (zh) * 2019-09-25 2020-02-04 支付宝(杭州)信息技术有限公司 一种小程序渲染方法和装置
CN110704136A (zh) * 2019-09-27 2020-01-17 北京百度网讯科技有限公司 小程序组件的渲染方法、客户端、电子设备及存储介质
CN112035172A (zh) * 2020-09-03 2020-12-04 腾讯科技(深圳)有限公司 操作系统启动方法、装置、服务器及存储介质
CN112416613A (zh) * 2020-10-23 2021-02-26 腾讯科技(深圳)有限公司 一种应用数据处理方法、装置、设备以及介质
CN112307403A (zh) * 2020-11-12 2021-02-02 Oppo(重庆)智能科技有限公司 页面渲染方法、装置、存储介质以及终端
CN112331235A (zh) * 2021-01-04 2021-02-05 腾讯科技(深圳)有限公司 多媒体内容的编辑控制方法、装置、电子设备和存储介质
CN114077368A (zh) * 2022-01-19 2022-02-22 腾讯科技(深圳)有限公司 车载小程序运行方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN116775164A (zh) 2023-09-19
US20240036891A1 (en) 2024-02-01

Similar Documents

Publication Publication Date Title
WO2021057830A1 (zh) 一种信息处理方法及电子设备
US8060560B2 (en) System and method for pervasive computing
CN110674022B (zh) 行为数据获取方法、装置及存储介质
WO2020233511A1 (zh) 一种应用启动方法、装置、计算机设备以及存储介质
US20150088982A1 (en) Load balanced inter-device messaging
CN110837473B (zh) 应用程序调试方法、装置、终端及存储介质
JP2023503679A (ja) マルチウィンドウ表示方法、電子デバイス及びシステム
JP2023504668A (ja) 情報処理方法、情報処理システム、情報処理装置、コンピュータ機器及びコンピュータプログラム
CN112420217B (zh) 消息推送方法、装置、设备及存储介质
CN110225048B (zh) 数据传输方法、装置、第一终端及存储介质
CN110851823B (zh) 数据访问方法、装置、终端及存储介质
CN113784049B (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
CN113190362B (zh) 服务调用方法、装置、计算机设备及存储介质
CN109040339B (zh) 基于ajax的跨域请求处理方法、装置及设备
CN114064450A (zh) 应用程序测试方法、装置、电子设备及存储介质
CN111125602A (zh) 页面构建方法、装置、设备和存储介质
CN114268796A (zh) 视频流处理的方法及装置
WO2021052488A1 (zh) 一种信息处理方法及电子设备
CN111258683A (zh) 检测方法、装置、计算机设备及存储介质
CN110889060A (zh) 网页显示方法、装置、计算机设备及存储介质
WO2023169157A1 (zh) 子应用程序的运行方法、装置、电子设备、程序产品及存储介质
CN113392120A (zh) 获取SQLite的执行信息的方法及装置
CN112148499A (zh) 数据上报方法、装置、计算机设备及介质
CN114385939A (zh) 应用显示方法、应用显示系统、装置及设备
CN111241451A (zh) 网页处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23765735

Country of ref document: EP

Kind code of ref document: A1