CN114077368A - 车载小程序运行方法、装置、计算机设备及存储介质 - Google Patents
车载小程序运行方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114077368A CN114077368A CN202210057733.3A CN202210057733A CN114077368A CN 114077368 A CN114077368 A CN 114077368A CN 202210057733 A CN202210057733 A CN 202210057733A CN 114077368 A CN114077368 A CN 114077368A
- Authority
- CN
- China
- Prior art keywords
- page
- layer
- data
- applet
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种车载小程序运行方法、装置、计算机设备及存储介质,属于车联网领域。该方法包括:响应于在浏览器中输入的小程序标识,通过浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求;通过控制层,基于第一数据获取请求,获取小程序标识对应的程序包,向视图层发送小程序标识对应的第一页面数据;通过视图层,基于第一页面数据,渲染出第一页面。本申请实施例提供的方法,能够应用于车载场景,通过浏览器中的视图层与操作系统中运行的控制层进行交互,从而通过该浏览器中的视图层在浏览器中显示小程序的页面,实现了以浏览器来运行小程序的方式,无需再为小程序单独开发页面显示程序,从而降低了开发成本。
Description
技术领域
本申请实施例涉及车联网领域,特别涉及一种车载小程序运行方法、装置、计算机设备及存储介质。
背景技术
小程序是一种不需要下载安装即可使用的应用,近年来得到了广泛的应用。为了在操作系统中运行小程序,通常需要为该操作系统开发一个用于显示小程序页面的UI(User Interface,用户界面)程序,后续在运行小程序时,通过开发的UI程序来显示小程序中的页面。但这种方式需要为操作系统单独开发一个UI程序,开发成本高。
发明内容
本申请实施例提供了一种车载小程序运行方法、装置、计算机设备及存储介质,能够降低开发成本。所述技术方案如下。
一方面,提供了一种车载小程序运行方法,所述方法包括:
响应于在浏览器中输入的小程序标识,通过所述浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,所述第一数据获取请求携带所述小程序标识;
通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包,所述程序包包括第一页面数据,所述第一页面数据指示小程序中的第一页面,向所述视图层发送所述小程序标识对应的所述第一页面数据;
通过所述视图层,基于所述第一页面数据,渲染出所述第一页面。
在一种可能实现方式中,所述运行所述逻辑数据,包括:
通过所述逻辑层,创建运行时Runtime环境;
通过所述逻辑层,将所述逻辑数据加载至所述Runtime环境中;
基于所述Runtime环境,运行所述逻辑数据。
在另一种可能实现方式中,所述第六通信接口为所述浏览器的模板页面中配置的接口;第十通信接口为所述模板页面包括的第一页面容器中配置的接口,且所述第一页面是基于所述浏览器的模板页面包括的第一页面容器显示的;
所述响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第六通信接口,向所述控制层发送所述操作对应的第二处理请求,包括:
通过所述视图层,基于所述模板页面中的钩子Hook函数截获第二调用请求,所述第二调用请求是响应于在所述第一页面中的操作生成的,且所述第二调用请求用于请求调用所述第十通信接口;
通过所述视图层,基于所述第二调用请求,调用所述第十通信接口关联的所述第六通信接口,向所述控制层发送所述第二处理请求。
在另一种可能实现方式中,所述通过所述视图层,基于所述第一页面数据,渲染出所述第一页面,包括:
通过所述视图层,基于所述第一页面数据,向所述逻辑层发送第四数据获取请求,所述第四数据获取请求用于请求所述逻辑层生成与所述第一页面数据关联的第三页面数据;
通过所述逻辑层,基于运行的所述逻辑数据生成所述第三页面数据,向所述视图层发送所述第三页面数据;
通过所述视图层,基于所述第一页面数据及所述第三页面数据,渲染出所述第一页面。
在另一种可能实现方式中,所述通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包,包括:
通过所述控制层,基于所述第一数据获取请求,确定所述小程序标识对应的下载地址;
通过所述控制层,基于所述下载地址,下载所述小程序标识对应的所述程序包。
在另一种可能实现方式中,所述响应于在浏览器中输入的小程序标识,通过所述浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,包括:
响应于在所述浏览器中输入的访问地址,通过所述视图层,从所述访问地址中提取所述小程序标识,向所述控制层发送所述第一数据获取请求。
另一方面,提供了一种车载小程序运行装置,所述装置包括:
发送模块,用于响应于在浏览器中输入的小程序标识,通过所述浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,所述第一数据获取请求携带所述小程序标识;
所述发送模块,还用于通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包,所述程序包包括第一页面数据,所述第一页面数据指示小程序中的第一页面,向所述视图层发送所述小程序标识对应的所述第一页面数据;
渲染模块,用于通过所述视图层,基于所述第一页面数据,渲染出所述第一页面。
在一种可能实现方式中,所述渲染模块,用于通过所述视图层,基于所述第一页面数据,在所述浏览器的模板页面中渲染出所述第一页面。
在另一种可能实现方式中,所述渲染模块,用于通过所述视图层,将所述第一页面数据加载至所述模板页面包括的第一页面容器中;基于所述第一页面容器,显示所述第一页面。
在另一种可能实现方式中,所述装置还包括:
所述发送模块,还用于响应于将所述第一页面切换为第二页面的指令,通过所述视图层,向所述控制层发送第二数据获取请求,所述第二数据获取请求用于请求所述第二页面的第二页面数据;
所述发送模块,还用于通过所述控制层,基于所述第二数据获取请求获取所述程序包包括的所述第二页面数据,向所述视图层发送所述第二页面数据;
加载模块,用于通过所述视图层,将所述第二页面数据加载至所述模板页面包括的第二页面容器中;
所述渲染模块,还用于基于所述第二页面容器,显示所述第二页面。
在另一种可能实现方式中,所述装置还包括:
设置模块,用于将所述第一页面容器的状态设置为隐藏状态;
所述渲染模块,用于将所述第二页面容器的状态设置为显示状态;基于当前处于所述显示状态的所述第二页面容器,显示所述第二页面。
在另一种可能实现方式中,所述程序包还包括逻辑数据;所述装置还包括:
创建模块,用于通过所述控制层,创建所述小程序标识对应的逻辑层;
运行模块,用于通过所述逻辑层,从所述程序包中获取所述小程序标识对应的所述逻辑数据,运行所述逻辑数据。
在另一种可能实现方式中,所述运行模块,用于通过所述逻辑层,创建运行时Runtime环境;通过所述逻辑层,将所述逻辑数据加载至所述Runtime环境中;基于所述Runtime环境,运行所述逻辑数据。
在另一种可能实现方式中,所述运行模块,用于通过所述逻辑层,向所述控制层发送第三数据获取请求,所述第三数据获取请求携带所述小程序标识;通过所述控制层,基于所述第三数据获取请求,从所述程序包中获取所述小程序标识对应的所述逻辑数据,向所述逻辑层发送所述逻辑数据;通过所述逻辑层,接收所述逻辑数据。
在另一种可能实现方式中,所述装置还包括:
所述发送模块,还用于响应于在所述第一页面中的操作,通过所述视图层,向所述逻辑层发送所述操作对应的第一处理请求;
所述发送模块,还用于通过所述逻辑层,基于运行的所述逻辑数据,获取所述第一处理请求对应的处理结果,向所述视图层发送所述处理结果;
响应模块,用于通过所述视图层,基于所述处理结果,对所述操作进行响应。
在另一种可能实现方式中,所述发送模块,用于响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第一通信接口,向所述逻辑层中的第二通信接口发送所述操作对应的第一处理请求;通过所述逻辑层,调用所述逻辑层中的第三通信接口,向所述视图层中的第四通信接口发送所述处理结果。
在另一种可能实现方式中,所述第一通信接口为所述浏览器的模板页面中配置的接口,第五通信接口为所述模板页面包括的第一页面容器中配置的接口,且所述第一页面是基于所述浏览器的模板页面包括的第一页面容器显示的;所述发送模块,用于通过所述视图层,基于所述模板页面中的钩子Hook函数截获第一调用请求,所述第一调用请求是响应于在所述第一页面中的操作生成的,且所述第一调用请求用于请求调用所述第五通信接口;通过所述视图层,基于所述第一调用请求,调用所述第五通信接口关联的所述第一通信接口,向所述逻辑层中的所述第二通信接口发送所述第一处理请求。
在另一种可能实现方式中,所述发送模块,用于响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第六通信接口,向所述控制层发送所述操作对应的第二处理请求;通过所述控制层,基于所述第二处理请求,向所述逻辑层中的第七通信接口发送所述第一处理请求;通过所述逻辑层,调用所述逻辑层中的第八通信接口,向所述控制层发送所述处理结果;通过所述控制层,向所述视图层中的所述第九通信接口发送所述处理结果。
在另一种可能实现方式中,所述第六通信接口为所述浏览器的模板页面中配置的接口;第十通信接口为所述模板页面包括的第一页面容器中配置的接口,且所述第一页面是基于所述浏览器的模板页面包括的第一页面容器显示的;所述发送模块,用于通过所述视图层,基于所述模板页面中的钩子Hook函数截获第二调用请求,所述第二调用请求是响应于在所述第一页面中的操作生成的,且所述第二调用请求用于请求调用所述第十通信接口;通过所述视图层,基于所述第二调用请求,调用所述第十通信接口关联的所述第六通信接口,向所述控制层发送所述第二处理请求。
在另一种可能实现方式中,所述渲染模块,用于通过所述视图层,基于所述第一页面数据,向所述逻辑层发送第四数据获取请求,所述第四数据获取请求用于请求所述逻辑层生成与所述第一页面数据关联的第三页面数据;通过所述逻辑层,基于运行的所述逻辑数据生成所述第三页面数据,向所述视图层发送所述第三页面数据;通过所述视图层,基于所述第一页面数据及所述第三页面数据,渲染出所述第一页面。
在另一种可能实现方式中,所述发送模块,用于通过所述控制层,基于所述第一数据获取请求,确定所述小程序标识对应的下载地址;通过所述控制层,基于所述下载地址,下载所述小程序标识对应的所述程序包。
在另一种可能实现方式中,所述发送模块,用于响应于在所述浏览器中输入的访问地址,通过所述视图层,从所述访问地址中提取所述小程序标识,向所述控制层发送所述第一数据获取请求。
在另一种可能实现方式中,所述操作系统为车载操作系统,所述浏览器为所述车载操作系统中运行的浏览器。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如上述方面所述的车载小程序运行方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如上述方面所述的车载小程序运行方法所执行的操作。
再一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述方面所述的车载小程序运行方法所执行的操作。
本申请实施例提供的方法、装置、计算机设备及存储介质,能够应用于车载场景,在需要运行小程序时,通过浏览器中的视图层与操作系统中运行的控制层进行交互,从而通过该浏览器中的视图层在浏览器中显示小程序的页面,即实现了以操作系统中的浏览器来运行小程序的方式,无需再为小程序单独开发页面显示程序,从而降低了开发成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的结构示意图;
图2是本申请实施例提供的一种车载小程序运行方法的流程图;
图3是本申请实施例提供的另一种车载小程序运行方法的流程图;
图4是本申请实施例提供的一种通过创建的逻辑层来运行逻辑数据的流程图;
图5是本申请实施例提供的一种对第一页面中的操作进行响应的流程图;
图6是本申请实施例提供的一种视图层、控制层与逻辑层之间的通信接口的示意图;
图7是本申请实施例提供的一种视图层、控制层与逻辑层之间的通信服务的示意图;
图8是本申请实施例提供的一种切换显示的页面的流程图;
图9是本申请实施例提供的一种模板页面的结构示意图;
图10是本申请实施例提供的一种车载小程序运行装置的结构示意图;
图11是本申请实施例提供的另一种车载小程序运行装置的结构示意图;
图12是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所使用的术语“第一”、“第二”、“第三”、“第四”、“第五”、“第六”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,能够将第一通信接口称为第二通信接口,且类似地,可将第二通信接口称为第一通信接口。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个页面包括3个页面,而每个是指这3个页面中的每一个页面,任一页面是指这3个页面中的任意一个页面,能够是第一个页面,或者,是第二个页面,或者,是第三个页面。
本申请实施例提供的车载小程序运行方法,由终端执行。在该终端上,只需用户在浏览器中输入小程序标识,即可显示该小程序标识对应的小程序,即实现了以操作系统中的浏览器来运行小程序的方式,无需再为小程序单独开发页面显示程序。
可选地,该终端是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端及飞行器等,但并不局限于此。
可选地,本申请实施例还提供了一种实施环境,图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101和服务器102。终端101和服务器102之间通过无线或者有线网络连接。
在此实施环境中,服务器102中存储有小程序的程序包,由终端101从服务器102下载小程序的程序包,该程序包包括显示小程序页面所需的页面数据,终端101基于程序包包含的页面数据,显示小程序的页面。
在一些实施例中,本申请实施例所涉及的小程序的程序包存储在区块链系统中。终端能够与该区块链系统中的任一服务器进行交互,获取该区块链系统中存储的任一小程序的程序包,以便后续基于该程序包,运行该小程序,显示出该小程序的页面。
图2是本申请实施例提供的一种车载小程序运行方法的流程图,由终端执行,如图2所示,该方法包括以下步骤。
201、终端响应于在浏览器中输入的小程序标识,通过该浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,该第一数据获取请求携带该小程序标识。
其中,该浏览器为终端的操作系统自带的浏览器,或者,为终端上安装的第三方浏览器。该小程序标识指示小程序,该小程序标识能够以任意的形式表示,例如,小程序标识为小程序名称、为小程序分配的标识码等。该操作系统是任意类型的操作系统。例如,该操作系统为Linux(一种操作系统),或者,为Android(安卓操作系统)。再例如,终端为手机,则该操作系统为手机操作系统;或者,终端为车载终端,则该操作系统为车载操作系统。该视图层和控制层用于支持小程序的运行,该视图层是浏览器中运行的,用于显示小程序的页面。该控制层是操作系统中运行的,用于为视图层提供支持,能够为视图层提供运行小程序所需的数据。
用户在浏览器中输入小程序标识,表示想要运行该小程序标识指示的小程序,则终端通过该浏览器中的视图层,向控制层发送第一数据获取请求,以请求该小程序标识对应的数据,以便后续为用户显示出小程序的页面。
202、终端通过该控制层,基于该第一数据获取请求,获取该小程序标识对应的程序包,该程序包包括第一页面数据,向该视图层发送该小程序标识对应的第一页面数据。
在本申请实施例中,每个小程序对应有一个程序包,该程序包包括运行小程序所需的数据,终端若要显示小程序的页面,需要先获取到该小程序的程序包,从中提取小程序的页面数据。
其中,该第一页面数据指示小程序中的第一页面,第一页面数据为渲染小程序中的第一页面所需的数据,该第一页面为小程序中的任一页面,例如,第一页面为小程序的首页面,或者,为小程序上次关闭时所显示的页面。
203、终端通过该视图层,基于该第一页面数据,渲染出该第一页面。
由于该第一页面数据为渲染该第一页面所需的数据,通过该视图层,基于该第一页面数据即可渲染出第一页面,实现了在浏览器中显示小程序的页面。
本申请实施例提供的方法,在需要运行小程序时,通过浏览器中的视图层与操作系统中运行的控制层进行交互,从而通过该浏览器中的视图层在浏览器中显示小程序的页面,即实现了以操作系统中的浏览器来运行小程序的方式,无需再为小程序单独开发页面显示程序,从而降低了开发成本。
在图2所示实施例的基础上,小程序的页面可以在浏览器中的模板页面的基础上显示出来,此过程详见下述实施例。
图3是本申请实施例提供的另一种车载小程序运行方法的流程图,由终端执行,如图3所示,该方法包括以下步骤。
301、终端响应于在该浏览器中输入的访问地址,通过该浏览器中的视图层,从该访问地址中提取该小程序标识,向操作系统中运行的控制层发送携带小程序标识的第一数据获取请求。
用户在浏览器中输入访问地址,在该访问地址中包含所需运行的小程序对应的小程序标识,则终端即可通过视图层提取出该小程序标识,以便确定需要运行哪一个小程序,从而发起携带该小程序标识的第一数据获取请求。
其中,该访问地址可以是以任意形式表示的地址,如用于运行小程序的访问地址,与用于访问普通网页的访问地址的格式可以相同。
例如,该访问地址可以由设定内容与小程序标识组合构成,那么,用于运行不同小程序的访问地址中,只有小程序标识不同,其余的设定内容都相同,终端获取到在浏览器中输入的访问地址,根据该设定内容即可确定本次的访问地址用于运行小程序,则从该访问地址提取除该设定内容之外的内容,即为小程序标识。
在一种可能实现方式中,控制层是基于一个独立的后台进行来运行的,用于对该操作系统中运行的任意小程序来提供数据支持。
在一种可能实现方式中,该浏览器中包括地址输入区域,该地址输入区域用于输入访问地址。例如,该地址输入区域为浏览器中的地址输入栏。用户能够在该地址输入区域中输入任意的小程序对应的地址,以便后续通过该浏览器来显示小程序的页面;并且,用户还能够在该地址输入区域中输入任意网页的访问地址,以便通过该浏览器来显示访问的网页。
可选地,通过浏览器中的模板页面来发起对小程序的数据获取请求,也即是,发起第一数据获取请求的过程包括:终端基于该浏览器显示模板页面,响应于在该模板页面中的地址输入区域中输入的访问地址,通过该浏览器中的视图层,从该访问地址中提取该小程序标识,向该控制层发送携带该小程序标识的第一数据获取请求。后续获取到该小程序的页面数据后,可以在该模板页面的基础上渲染该页面数据。
其中,模板页面为浏览器中的任一标签页面,用于显示访问的页面。可选地,模板页面中的地址输入区域默认为空。用户在模板页面中的地址输入区域中输入访问地址,以请求在该模板页面中显示该访问地址对应的页面。
在一种可能实现方式中,视图层与控制层是基于该视图层与控制层之间的第一访问服务来进行交互的,则该步骤301包括:终端响应于在该浏览器中输入的访问地址,通过该浏览器中的视图层,从该访问地址中提取该小程序标识;基于该第一访问服务,向该控制层发送第一数据获取请求。
其中,第一访问服务为任意形式的服务,例如,该第一访问服务为HTTP(HyperText Transfer Protocol,超文本传输协议)服务。在本申请实施例中,视图层与控制层之间建立有第一访问服务,通过该视图层,基于该第一访问服务,能够向控制层发送请求,以请求获取小程序标识对应的页面数据。可选地,第一访问服务仅能由视图层发起。
需要说明的是,本申请实施例是以在浏览器中输入包含小程序标识的访问地址来发起运行小程序的,而在另一实施例中,无需执行步骤301,而是采取其他方式,响应于在浏览器中输入的小程序标识,通过该浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,该第一数据获取请求携带该小程序标识。
302、终端通过该控制层,接收该第一数据获取请求,基于该第一数据获取请求,获取该小程序标识对应的程序包,向该视图层发送该程序包中该小程序标识对应的第一页面数据。
其中,该程序包包括第一页面数据,该第一页面数据指示该小程序标识指示的小程序中的第一页面。可选地,该程序包为脚本文件。终端通过该控制层接收该视图层发送的第一数据获取请求,该第一数据获取请求用于请求携带的小程序标识对应的页面数据,则通过该控制层,获取该第一获取请求携带的小程序标识对应的程序包,该程序包包括小程序标识对应的第一页面数据,向该视图层发送该第一页面数据。
在一种可能实现方式中,获取小程序标识对应的程序包的过程,包括:通过该控制层,基于该第一数据获取请求,查询小程序标识与下载地址之间的对应关系,确定该第一数据获取请求携带的小程序标识对应的下载地址;通过该控制层,基于查询到的下载地址,下载该小程序标识对应的程序包。
其中,小程序标识与下载地址之间的对应关系包括至少一个小程序标识及对应的下载地址,任一小程序标识对应的下载地址指示该小程序标识对应的程序包对应的存储位置。可选地,该小程序标识与下载地址之间的对应关系是由开发人员在该操作系统中配置的,该小程序标识与下载地址之间的对应关系中的小程序标识指示的小程序,均为该操作系统中能够运行的小程序。
终端中配置有小程序标识与下载地址之间的对应关系,通过该对应关系,能够及时下载当前将要运行的小程序的程序包,从而保证小程序的正常运行,并且,这种实时下载方式,无需在终端中存储多个小程序对应的程序包,从而节省了终端的存储资源。
可选地,终端基于查询到的下载地址下载程序包的过程,包括:终端基于查询到的下载地址,向服务器发送程序包获取请求,服务器基于该程序包获取请求,获取该下载地址下存储的程序包,向该终端发送该程序包,终端通过该控制层,接收服务器发送的程序包。
其中,该服务器中存储有小程序标识对应的程序包。在通过获取到小程序标识对应的下载地址后,通过与存储有程序包的服务器进行交互,来获取该下载地址下存储的程序包,实现了实时下载程序包的方案。
在一种可能实现方式中,获取小程序标识对应的程序包的过程,包括:通过该控制层,基于该第一数据获取请求,查询程序包数据库中该第一数据获取请求携带的小程序标识对应的程序包。
其中,程序包数据库用于存储该操作系统中能够运行的小程序对应的程序包,且在该程序包数据库中,程序包与小程序标识对应存储。通过控制层获取到第一数据获取请求后,查询程序包数据库,确定与该第一数据获取请求携带的小程序标识对应存储的程序包。
需要说明的是,本申请仅是以上述两种方式来说明获取小程序标识对应的程序包的过程,而在另一实施例中,上述两种方式能够结合。
在一种可能实现方式中,获取小程序标识对应的程序包的过程,包括:通过该控制层,基于该第一数据获取请求,查询程序包数据库,确定该第一数据获取请求携带的小程序标识对应的程序包;响应于在该程序包数据库中未查询到该小程序标识对应的程序包,查询小程序标识与下载地址之间的对应关系,确定该第一数据获取请求携带的小程序标识对应的下载地址;通过该控制层,基于查询到的下载地址,下载该小程序标识对应的程序包,并且将该小程序的程序包存储在程序包数据库中。
在本申请实施例中,该程序包数据库中存储有该操作系统之前运行过的小程序对应的程序包。在第一数据获取请求携带的小程序标识指示的小程序为该终端首次运行的小程序的情况下,该程序包数据库中可能不存在该小程序对应的程序包,则需要基于小程序标识与下载地址之间的对应关系来下载该小程序对应的程序包,并且,将下载的程序包存储在程序包数据库中,以便后续再运行该小程序时,直接从该程序包数据库中获取程序包即可。在该小程序为该终端非首次运行的小程序的情况下,该程序包数据库中存储有该小程序对应的程序包,即可直接从该程序包数据库中获取该小程序对应的程序包。
在一种可能实现方式中,视图层与控制层是基于该视图层与控制层之间的第一访问服务来进行交互的,则该步骤302包括:终端通过该控制层,接收该第一数据获取请求,基于该第一数据获取请求,获取该小程序标识对应的程序包;基于该第一访问服务,向该视图层发送该程序包中该小程序标识对应的第一页面数据。
在本申请实施例中,该第一数据获取请求是视图层基于该第一访问服务,向该控制层发送的,那么,通过该控制层获取到该第一数据获取请求对应的第一页面数据后,再基于该第一访问服务,向该视图层发送该第一页面数据,以实现视图层与控制层之间的一次访问服务。
可选地,第一页面数据为静态资源。
其中,静态资源为小程序对应的程序包包括的资源,即无需运行程序包即可获取到的资源,例如,静态通用资源包括小程序中的页面对应的页面JS(JavaScript,脚本)文件、图片等。在本申请实施例中,通过该视图层能够从控制层获取静态通用资源。
303、终端通过该视图层,将该第一页面数据加载至该浏览器的模板页面包括的第一页面容器中。
其中,模板页面为浏览器中的标签页面,用于显示访问的页面。例如,模板页面为HTML(Hyper Text Markup Language,超文本标记语言)页面。第一页面容器为模板页面中的页面容器(Page Container),用于承载小程序的页面数据。在本申请实施例中,模板页面包括至少一个页面容器,每个页面容器用于承载小程序中的一个页面对应的页面数据,该第一页面容器为至少一个容器中的任一页面容器。
304、终端通过该视图层,基于该第一页面容器,显示第一页面。
通过视图层将第一页面数据加载至第一页面容器中后,该第一页面容器包含了渲染出第一页面的页面数据,基于该第一页面容器,即可显示出第一页面。
在一种可能实现方式中,第一页面容器包括分页插件及页面主体,则该步骤304包括:通过该视图层,基于该第一页面容器中的分页插件及页面主体,显示出该第一页面。
其中,分页插件(Pagebar)用于显示页面的标题、页面的标签页或功能选项。页面的标题为页面的名称,或者,为页面在小程序包括的多个页面中的序号等。标签页用于表示页面对应的标签页面,相当于页面的子页面,例如,小程序页面中包括多个标签页面,每个标签页面为该小程序页面的子页面。功能选项为小程序的页面中能够操作的选项,通过功能选项能够实现某种功能,功能选项能够以任意的形式来显示,例如,功能选项为按钮或滑动条等。页面主体用于展示第一页面的主体内容(Body),例如,第一页面的主题内容包括第一页面包含的文本、图片等。
可选地,分页插件用于显示页面中的标题栏、标签栏或功能选项栏。其中,标题栏、标签栏或功能选项栏在页面中的不同区域中显示,标题栏用于显示页面的标题,标签栏用于显示页面的标签,功能选项栏用于显示页面的功能选项。
例如,在第一页面数据包括与第一页面的标题及第一页面的功能选项相关的数据的情况下,基于该第一页面容器中的分页插件及页面主体,显示出该第一页面,该第一页面中显示有标题栏及功能选项栏,该标题栏中显示有第一页面的标题,该功能选项栏中显示有功能选项。
在一种可能实现方式中,该步骤304包括:通过视图层,基于第一页面容器中的第一页面数据,向该控制层发送第五数据获取请求,该第五数据获取请求用于请求该第一页面数据关联的目标数据,通过该控制层,接收该第五数据获取请求,基于该第五数据获取请求,从该操作系统中获取目标数据,向该视图层发送该目标数据,通过该视图层接收该目标数据,将该目标数据加载至第一页面数据中,基于该第一页面容器中的第一页面数据及目标数据,显示该第一页面。
其中,目标数据为终端的状态信息,用于显示在第一页面中。例如,终端为车载终端,该状态信息为汽车的状态信息,包括汽车速度、汽车油量等。再例如,终端为电视,该状态信息为电视的频道信息等。在本申请实施例中,控制层与操作系统对接,能够获取操作系统中的数据。例如,控制层能够从操作系统中获取终端所处的位置、读取存储的文件、或者设备信息等。控制层与操作系统对接,从操作系统中获取数据,以便为小程序的运行提供数支持。
例如,本申请实施例应用于车载场景中,该操作系统为车载操作系统,该浏览器为车载操作系统中的浏览器。该小程序为车载小程序,该小程序用于显示汽车行驶状态,其中的第一页面用于显示汽车的行驶速度。终端通过该视图层将第一页面数据加载至第一页面容器中,基于该第一页面数据显示第一页面时,第一页面数据中部分数据指示需要从该车载操作系统中获取汽车的行驶速度,则基于该第一页面数据,向控制层发送速度获取请求,终端通过控制层,接收该速度获取请求,从车载操作系统中获取汽车的行驶速度,向视图层发送该行驶速度,从而通过视图层,将该行驶速度加载至第一页面容器中,基于第一页面容器中的第一页面数据及行驶速度,显示出第一页面,该第一页面显示有汽车的行驶速度。
可选地,通过视图层与控制层进行交互,还能够获取用于显示第一页面的其他数据。例如,其他数据为第一页面中的Page-Frame.JS(页面框架脚本)、Page-Data.JS(页面数据脚本)或者wawebview.js(与页面无关的小程序框架)等。
需要说明的是,本申请实施例是基于浏览器的模板页面中的第一页面容器来显示第一页面的,而在另一实施例中,无需执行步骤303-304,能够采取其他方式,通过该视图层,基于该第一页面数据,在该浏览器的模板页面中渲染出第一页面。
需要说明的是,本申请实施例是基于浏览器的模板页面中的第一页面容器来显示第一页面的,而在另一实施例中,无需执行步骤303-304,而是采取其他方式渲染出该第一页面。
本申请实施例提供的方法,在需要运行小程序时,通过浏览器中的视图层与操作系统中运行的控制层进行交互,从而通过该浏览器中的视图层在浏览器中显示小程序的页面,即实现了以操作系统中的浏览器来运行小程序的方式,无需再为小程序单独开发页面显示程序,从而降低了开发成本。并且,以网页的形式来显示小程序的页面,此种运行小程序的方式无需额外的Webview(一种页面显示引擎),从而降低了小程序所需的空间和运行小程序时的内存消耗。
并且,由于浏览器是基于输入的访问地址来显示页面的,因此,本申请实施例是以访问地址的形式在浏览器中输入小程序标识的,以保证通过浏览器中的视图层能够识别该访问地址,从该访问地址提取出小程序标识,以便能够以浏览器来运行小程序。
并且,基于在浏览器的模板页面包含的页面容器来显示小程序中的页面,模板页面包括的每个页面容器用于显示小程序中的一个页面,这样能够将小程序的多个页面对应的页面数据分离开,使得多个页面对应的页面数据互不干扰,从而保证了小程序的页面正常显示。
并且,本申请实施例中,小程序的程序包是以脚本文件来实现的,代码通用性强。
在上述图3所示的实施例的基础上,小程序标识对应的程序包还包括逻辑数据,通过控制层,创建小程序标识对应的逻辑层,通过该逻辑层运行小程序标识对应的逻辑数据,以支持该小程序标识指示的小程序的运行。如图4所示,创建逻辑层的过程以及基于逻辑层来运行小程序标识对应的逻辑数据的过程,包括以下步骤。
401、终端通过该控制层,创建该小程序标识对应的逻辑层。
其中,该逻辑层用于支持该小程序的运行。通过控制层,创建小程序标识对应的逻辑层,即建立了小程序标识与该逻辑层之间的关联关系,以便通过该逻辑层,支持该小程序的运行。
另外,对于不同的小程序,在运行不同的小程序时,需要分别为运行的每个小程序创建与该小程序关联的逻辑层。
402、终端通过该逻辑层,向该控制层发送第三数据获取请求,该第三数据获取请求携带该小程序标识。
其中,第三数据获取请求用于请求该小程序标识对应的逻辑数据。通过该逻辑层,向该控制层发送携带该小程序标识的第三数据获取请求,以请求该小程序标识对应的逻辑数据。
在一种可能实现方式中,逻辑层与控制层是基于该逻辑层与控制层之间的第二访问服务来进行交互的,则该步骤402包括:终端通过该逻辑层,基于该第二访问服务,向该控制层发送第三数据获取请求,该第三数据获取请求携带该小程序标识。
其中,第二访问服务为任意形式的服务,例如,第二访问服务为HTTP服务。在本申请实施例中,视图层与控制层之间建立有第二访问服务,通过该逻辑层,基于该第二访问服务,能够从控制层获取小程序标识对应的逻辑数据。即通过逻辑层与控制层之间的第二访问服务,能够实现逻辑层与控制层之间的通信,以便通过逻辑层从控制层获取所需的数据。可选地,第二访问服务仅能由逻辑层发起。
403、终端通过该控制层,基于该第三数据获取请求,从该程序包中获取该小程序标识对应的逻辑数据,向该逻辑层发送该逻辑数据。
其中,逻辑数据为支持小程序运行的数据,例如,该逻辑数据为JS(JavaScript,脚本)数据。可选地,该逻辑数据是由开发人员开发小程序时编写的逻辑数据,表示需要按照该逻辑数据所指示的逻辑控制小程序的运行。在本申请实施例中,小程序对应的程序包还包括小程序标识对应的逻辑数据。相应的,终端会通过控制层,基于该第三数据获取请求携带的小程序标识,从该小程序标识对应的程序包中获取该小程序标识对应的逻辑数据,向该逻辑层发送该逻辑数据,以便后续通过该逻辑层运行该逻辑数据。
在一种可能实现方式中,逻辑层与控制层是基于该逻辑层与控制层之间的第二访问服务来进行交互的,则该步骤403包括:终端通过该控制层,基于该第三数据获取请求,从该程序包中获取该小程序标识对应的逻辑数据,基于该第二访问服务,向该逻辑层发送该逻辑数据。
在本申请实施例中,该第三数据获取请求是通过逻辑层,基于该第二访问服务,向该控制层发送的,通过该控制层获取到该小程序标识对应的逻辑数据后,再基于该第二访问服务,向该逻辑层发送该小程序标识对应的逻辑数据,以实现逻辑层与控制层之间的一次访问服务。
可选地,逻辑数据为静态资源。
其中,该逻辑数据为程序包包括的数据,静态资源即为无需运行该程序包即可从程序包中获取到的数据。
404、终端通过该逻辑层,接收该控制层发送的逻辑数据,运行该逻辑数据。
终端通过逻辑层获取到请求的逻辑数据后,运行该逻辑数据,以便支持该小程序的运行。例如,在小程序启动过程中,通过该逻辑层运行的逻辑数据,能够保证用户在显示的小程序的页面中能够执行某些交互操作,以实现相应的功能。
在一种可能实现方式中,运行逻辑数据的过程包括:通过该逻辑层,创建运行时Runtime环境,Runtime环境为运行小程序的逻辑数据所需的环境,则通过该逻辑层,将该逻辑数据加载至Runtime环境中;基于Runtime环境,运行该逻辑数据。
可选地,创建Runtime环境的过程包括:通过该逻辑层,运行脚本引擎,创建该Runtime环境。其中,脚本引擎为任意类型的引擎,例如,脚本引擎为V8(一种脚本引擎)。通过一个独立的后台进程,运行该脚本引擎,以便创建出运行逻辑数据所需的Runtime环境。
需要说明的是,本申请实施例是通过逻辑层向控制层发送第三数据获取请求,以请求该小程序标识对应的逻辑数据的,而在另一实施例中,无需执行步骤402-404,能够采取其他方式,通过该逻辑层,从该程序包中获取该小程序标识对应的该逻辑数据,运行该逻辑数据。
本申请实施例提供的方法,通过控制层,获取到视图层发送的数据获取请求携带的小程序标识对应的程序包后,通过该控制层,创建该小程序标识关联的逻辑层,并通过控制层与逻辑层之间的交互,通过该逻辑层运行该小程序标识对应的逻辑数据,以实现对该小程序标识指示的小程序的运行提供支持,这种将视图层与逻辑层分离的方式,后期在对小程序进行更新时能够单独更新逻辑数据或者页面数据,便于进行后期的维护和二次开发。
在上述图3及图4的基础上,用于显示小程序页面的部分页面数据集基于运行的逻辑数据生成的,则显示第一页面的过程,包括以下步骤1-步骤3。
步骤1、终端通过该视图层,基于该第一页面数据,向该逻辑层发送第四数据获取请求,该第四数据获取请求用于请求逻辑层生成与该第一页面数据关联的第三页面数据。
步骤2、终端通过该逻辑层,接收该第四数据获取请求,基于运行的该逻辑数据,生成该第三页面数据,向该视图层发送该第三页面数据。
其中,第三页面数据是用于显示页面的动态资源,是由逻辑层基于运行的逻辑数据生成的。通过该逻辑层接收到该第四数据获取请求后,基于运行的逻辑数据,获取第四数据获取请求所请求的第三页面数据,向该视图层发送该第三页面数据。
步骤3、终端通过该视图层,基于该第一页面数据及该第三页面数据,渲染出该第一页面。
由于第一页面数据及第三页面数据均是用于渲染第一页面的页面数据,通过该视图层获取到第一页面数据及第三页面数据后,即可基于第一页面数据及第三页面数据渲染出该第一页面。
在本申请实施例中,通过逻辑层运行的逻辑数据,能够为小程序的运行提供动态数据支持,以保证视图层能够从逻辑层获取到用于渲染页面的页面数据,使得第一页面不仅可以通过静态资源来显示,也能够结合动态资源来显示,这样能丰富了第一页面的显示样式。
在上述图3及图4所示的实施例的基础上,在显示第一页面之后,用户可以在第一页面中进行某些操作,实现用户与小程序之间的人机交互。如图5所示,终端对第一页面中的操作进行响应的过程包括以下步骤。
501、终端响应于在第一页面中的操作,通过该视图层,向该逻辑层发送该操作对应的第一处理请求。
在显示第一页面后,用户能够在第一页面中执行操作,该操作为任意类型的操作,例如,该操作为点击操作或者滑动操作等。由于逻辑层用于支持小程序的运行,由视图层对第一页面中的操作进行响应。
502、终端通过该逻辑层,接收该第一处理请求,基于运行的该逻辑数据,获取该第一处理请求对应的处理结果,向该视图层发送该处理结果。
终端通过逻辑层接收到视图层发送的第一处理请求后,基于运行的逻辑数据,能够对该第一处理请求进行处理,从而得到处理结果,后续向视图层发送该处理结果,以便通过视图层,基于该处理结果,对用户执行的操作来进行响应。
503、终端通过该视图层,接收该处理结果,基于该处理结果,对该操作进行响应。
通过该视图层与逻辑层之间的交互,实现了对用户在第一页面中执行的操作的响应。
例如,响应于用户对第一页面中的跳转选项执行的点击操作,通过该视图层,向逻辑层发送该点击操作对应的第一处理请求,通过逻辑层,接收该第一处理请求,基于运行的逻辑数据,获取到对该跳转选项执行点击操作后跳转的页面对应的页面数据,该页面数据即为该第一处理请求对应的处理结果,向该视图层发送该处理结果,以便视图层能够基于该页面数据来显示跳转后的页面,实现了对用户对跳转选项执行点击操作进行响应,以便用户能够查看跳转后的页面。
本申请实施例提供的方法,在基于视图层展示小程序的页面的基础上,用户能够在显示的页面中执行操作,基于视图层与逻辑层之间的交互,通过逻辑层,基于运行的逻辑数据,对用户执行的操作进行响应,实现用户与小程序之间的人机交互。
在上述图5所示的实施例的基础上,通过视图层与逻辑层进行交互的过程,包括以下两种方式。
第一种方式,包括以下步骤1-4。
步骤1、响应于在该第一页面中的操作,通过该视图层,调用该视图层中的第一通信接口,向该逻辑层中的第二通信接口发送该操作对应的第一处理请求。
在本申请实施例中,视图层与逻辑层之间建立有第一通信服务,通过该第一通信服务能实现视图层与逻辑层之间的通信。该第一通信服务为任意形式的服务,例如,该第一通信服务为WebSocket(一种双向通信协议)。
视图层包括第一通信接口和第四通信接口,逻辑层包括第二通信接口和第三通信接口,第一通信接口、第四通信接口、第二通信接口和第三通信接口构成了视图层与逻辑层之间的第一通信服务。如图6所示,第一通信接口与第二通信接口构成了由视图层向逻辑层通信的服务,第三通信接口与第四通信接口构成了由逻辑层向视图层通信的服务。第一通信接口用于由视图层向逻辑层发送消息,第二通信接口用于接收视图层向逻辑层发送的消息,第三通信接口用于由逻辑层向视图层发送消息,第四通信接口用于接收逻辑层发送的消息。第一通信接口、第四通信接口、第二通信接口和第三通信接口均为任意类型的接口,例如,第一通信接口和第三通信接口为Publish Handler(发布处理程序),第二通信接口和第四通信接口为Subscribe Handler(订阅处理程序)。
在一种可能实现方式中,第一通信接口为浏览器的模板页面中配置的接口,第五通信接口为模板页面包括的第一页面容器中配置的接口,且第一页面是基于浏览器的模板页面包括的第一页面容器显示的,即第一页面是按照上述图3所示的实施例进行显示的;该步骤1包括:通过视图层,基于模板页面中的钩子Hook函数截获第一调用请求,该第一调用请求是响应于在第一页面中的操作生成的,且第一调用请求用于请求调用该第五通信接口;通过视图层,基于第一调用请求,调用第五通信接口关联的第一通信接口,向逻辑层中的第二通信接口发送第一处理请求。
在本申请实施例中,小程序的第一页面是基于模板页面中的页面容器来显示的,视图层中用于与逻辑层进行通信的通信接口是配置在模板页面中的,页面容器中也配置有与模板页面中用于通信的通信接口对应的通信接口,且页面容器中的通信接口不直接与逻辑层进行交互,而是通过模板页面中的通信接口来与逻辑层进行交互的。通过采用Hook的方式,将模板页面中的第一通信接口与页面容器中的第五通信接口关联起来。由于模板页面中的每个页面容器用于显示小程序的一个页面,通过采用Hook的方式,将页面容器中的通信接口与模板页面中的通信接口进行关联,以便能够通过模板页面中的通信接口来实现不同页面容器与逻辑层之间的交互,便于对小程序的多个页面进行管理。
可选地,第一页面容器中还配置有与第四通信接口关联的通信接口,该通信接口与第四通信接口之间的关联关系是基于该Hook函数来实现的。
可选地,模板页面中存在一个Topframe(一种框架),基于该Topframe来管理Hook函数,采用Hook的方式,实现对多个通信接口的管理。
步骤2、通过该逻辑层,基于第二通信接口接收该第一处理请求,基于运行的该逻辑数据,获取该第一处理请求对应的处理结果。
该步骤与上述步骤502同理,在此不再赘述。
步骤3、通过该逻辑层,调用该逻辑层中的第三通信接口,向该视图层中的第四通信接口发送该处理结果。
在本申请实施例中,逻辑层中的第三通信接口用于向视图层发送信息,视图层中的第四通信接口用于接收逻辑层发送的信息。
步骤4、通过该视图层,基于该第四通信接口,接收该处理结果。
在本申请实施例中,视图层能够基于该第四通信接口,接收逻辑层发送的处理结果,以便后续基于处理结果来对操作进行响应。
本申请实施例提供的方式,视图层包括第一通信接口和第四通信接口,逻辑层包括第二通信接口和第三通信接口,基于第一通信接口、第四通信接口、第二通信接口和第三通信接口构成了视图层与逻辑层之间的第一通信服务,通过该通信服务来实现逻辑层与视图层之间的交互,保证小程序能够以在浏览器中运行。
第二种方式,包括以下步骤5-10。
步骤5、响应于在该第一页面中的操作,通过该视图层,调用该视图层中的第六通信接口,向该控制层发送该操作对应的第二处理请求。
在本申请实施例中,视图层包括第六通信接口和第九通信接口,逻辑层包括第七通信接口和第八通信接口。如图6所示,由第六通信接口和第九通信接口,构成了视图层与控制层之间建立的第二通信服务。由第七通信接口和第八通信接口,构成了逻辑层与控制层之间的第三通信服务。基于该第二通信服务及该第三通信服务,能够以该控制层作为中转,能够实现视图层与逻辑层之间的交互。第六通信接口用于由视图层向控制层发送消息,第九通信接口用于接收控制层向视图层发送的消息,第七通信接口用于接收控制层向逻辑层发送的消息,第八通信接口用于由逻辑层向控制层发送的消息。第六通信接口、第七通信接口、第八通信接口和第九通信接口均为任意类型的接口,例如,第六通信接口和第八通信接口为Invoke Handler(调用通信接口),第七通信接口和第九通信接口为InvokeCallback Handler(回调通信接口)。
在一种可能实现方式中,第六通信接口为浏览器的模板页面中配置的接口;第十通信接口为模板页面包括的第一页面容器中配置的接口,且第一页面是基于浏览器的模板页面包括的第一页面容器显示的,即第一页面是按照上述图3所示的实施例进行显示的;该步骤5包括:通过该视图层,基于该模板页面中的钩子Hook函数截获第二调用请求,该第二调用请求是响应于在第一页面中的操作生成的,且第二调用请求用于请求调用第十通信接口;通过该视图层,基于该第二调用请求,调用该第十通信接口关联的该第六通信接口,向该控制层发送该第二处理请求。
在本申请实施例中,小程序的页面是基于模板页面中的页面容器来显示的,模板页面中配置了与逻辑层进行通信的通信接口,而页面容器中也配置了通信接口,页面容器中的第十通信接口与模板页面中配置的第六通信接口关联。采用Hook的形式,在通过页面容器调用页面容器中配置的第十通信接口时,通过Hook函数,截获调用请求,通过与调用请求指示的第十通信接口关联的第六通信接口,来实现处理请求。
可选地,模板页面中还包括全局控制逻辑,该全局控制逻辑用于控制视图层的逻辑,例如,该全局控制逻辑为FrameWork.JS(框架脚本)。则通过视图层向控制层发送第二处理请求的过程包括:通过该全局控制逻辑,基于该第二调用请求,调用该第十通信接口关联的该第六通信接口,向该控制层发送该第二处理请求,该第二处理请求携带该第一页面的页面标识。
其中,在向控制层发送第二处理请求时,该第二处理请求携带该第一页面的页面标识,以保证能够获知后续控制层返回的该第二处理请求对应的处理结果对应的页面,从而实现对当前运行的小程序包含的页面进行管理。
可选地,该全局控制逻辑还能实现其他功能,例如,通过该全局控制逻辑,能够管理当前运行的小程序包括的页面、各个页面之间的跳转逻辑、视图层中的通信接口以及视图层与逻辑层和控制层之间的路由和消息转发。
步骤6、通过该控制层,基于该第二处理请求,向该逻辑层中的第七通信接口发送该第一处理请求。
其中,该第七通信接口为逻辑层中用于接收控制层发送的处理请求的接口。
在一种可能实现方式中,该步骤6包括:通过该控制层,接收该第二处理请求,该第二处理请求指示由逻辑层对操作系统中的数据进行处理,则通过控制层基于该第二处理请求,获取操作系统中该第二处理请求对应的数据,向该第七通信接口发送该第一处理请求,该第一处理请求携带该数据。
步骤7、通过该逻辑层,基于第七通信接口接收该第一处理请求,基于运行的该逻辑数据,获取该第一处理请求对应的处理结果。
该步骤中获取处理结果的过程,与上述步骤502同理,在此不再赘述。
步骤8、通过该逻辑层,调用该逻辑层中的第八通信接口,向该控制层发送该处理结果。
在本申请实施例中,逻辑层与控制层之间建立有第三通信服务,逻辑层中配置有第七通信接口及第八通信接口,第七通信接口用于接收控制层发送的消息,第八通信接口用于向控制层发送消息。在通过逻辑层获取到第一处理请求对应的处理结果后,调用逻辑层中的第八通信接口,向控制层发送该处理结果。
步骤9、通过该控制层,向该视图层中的该第九通信接口发送该处理结果。
在本申请实施例中,控制层与视图层之间建立有第二通信服务,视图层中部署有第九通信接口及第六通信接口,第六通信接口用于向控制层发送消息,第九通信接口用于接收控制层发送的消息。在控制层获取到处理结果后,通过该控制层,向该视图层中的第九通信接口发送该处理结果,以便视图层通过该第九通信接口接收该处理结果。
步骤10、通过视图层,基于该第九通信接口,接收该控制层发送的处理结果。
在一种可能实现方式中,模板页面中还包括全局控制逻辑,通过视图层向该控制层发送的第二处理请求携带该第一页面的页面标识,在步骤10之后,基于处理结果,对操作进行响应的过程包括:通过该全局控制逻辑,对该处理结果进行解析,得到该处理结果中的页面标识,确定该页面标识指示的页面,向该页面对应的页面容器发送该处理结果,通过该页面容器,基于该处理结果,对该操作进行响应。
通过全局控制逻辑,在向控制层发送第二处理请求时,该第二处理请求携带该第一页面的页面标识,以保证能够获知后续控制层返回的该第二处理请求对应的处理结果对应的页面,从而实现对当前运行的小程序包含的页面进行管理。
本申请实施例中,视图层包括第六通信接口和第九通信接口,逻辑层包括第七通信接口和第八通信接口,由第六通信接口和第九通信接口构成了视图层与控制层之间的第二通信服务,由第七通信接口和第八通信接口构成了控制层与逻辑层之间的第三通信服务,通过该第二通信服务及第三通信服务,以该控制层作为中转,实现逻辑层与视图层之间的交互,从而保证逻辑层能够支持小程序的运行,保证小程序的正常运行。
并且,通过该第二通信服务及第三通信服务,以该控制层作为中转,实现逻辑层与视图层之间的交互的过程中,还能够通过控制层来获取操作系统中的数据,以保证小程序能够利用操作系统中的数据来实现功能。
基于上述所示的实施例,如图7所示,视图层与控制层之间建立有第一访问服务及第二通信服务,逻辑层与控制层之间建立由第二访问服务及第三通信服务,视图层与逻辑层之间建立有第一通信按服务,基于视图层、控制层及平台层之间的服务,能够保证小程序的正常运行。
图3所示的实施例仅是以显示第一页面为例来进行说明的,而在图3所示的实施例的基础上,在显示第一页面之后,还能够显示小程序的其他页面,如图8所示,在显示第一页面之后显示其他页面的过程包括以下步骤。
801、终端响应于将第一页面切换为第二页面的指令,通过该视图层,向该控制层发送第二数据获取请求,该第二数据获取请求用于请求该第二页面的第二页面数据。
在本申请实施例中,小程序包括第一页面和第二页面,在显示第一页面后,还能够切换为显示该小程序的第二页面。
在一种可能实现方式中,第二数据获取请求携带该第二页面的页面标识。其中,该页面标识能够以任意的形式表示,例如,该页面标识为页面的标题,或者为页面在小程序中的序号等。通过向控制层发送携带页面标识的第二数据获取请求,以便控制层能够按照该第二数据获取请求来返回对应的第二页面数据,以便后续显示第二页面。
在一种可能实现方式中,第二数据获取请求携带该第二页面的页面地址。其中,该页面地址指示第二页面的页面数据在程序包中的位置,例如,该页面地址为Page Path(页面路径)。通过向控制层发送携带页面地址的第二数据获取请求,以便通过控制层能够按照该第二数据获取请求来返回对应的页面数据,从而保证视图层与控制层之间的交互的准确性。
在一种可能实现方式中,该视图层与控制层之间建立有第一访问服务,则该步骤801包括:终端响应于将第一页面切换为第二页面的指令,通过该视图层,基于该第一访问服务,向该控制层发送第二数据获取请求,该第二数据获取请求用于请求该第二页面的页面数据。
在一种可能实现方式中,该步骤801包括以下两种方式。
第一种方式:终端在第一页面的显示时长达到目标时长的情况下,通过该视图层,向控制层发送第二数据获取请求,该第二数据获取请求用于请求该第一页面关联的第二页面的页面数据。
其中,目标时长为任意的时长,例如,目标时长为10秒。第一页面与第二页面之间具有关联关系,在第一页面的显示时长达到目标时长的情况下,会自动跳转至第二页面,则终端通过视图层向控制层请求第二页面的页面数据,以便后续能够基于第二页面的页面数据来显示第二页面。
第二种方式:终端响应于将第一页面切换为第二页面的操作,通过该视图层,向控制层发送第二数据获取请求,该第二数据获取请求用于请求该第一页面关联的第二页面的页面数据。
其中,将第一页面切换为第二页面的操作为任意类型的操作,例如,将第一页面切换为第二页面的操作为触发操作或滑动操作等。
可选地,第一页面中显示有功能选项,该功能选项与第二页面关联,用于跳转至第二页面,响应于对该功能选项的触发操作,通过该视图层,向控制层发送第二数据获取请求。
例如,该第二页面为第一页面的下一个页面,功能选项为“下一页”,用户点击该“下一页”,则终端通过视图层向控制层请求获取第二页面的页面数据,以便后续显示第二页面。再例如,第二页面为资源转移页面,功能选项为“支付”,用户点击该“支付”,则终端通过视图层向控制层请求获取第二页面的页面数据,以便后续用户通过显示的第二页面进行支付。
802、终端通过该控制层,接收该第二数据获取请求,基于该第二数据获取请求,获取该程序包包括的第二页面数据,该第二页面数据指示该第二页面,向该视图层发送该第二页面数据。
其中,该程序包为当前运行的小程序的程序包,第二数据获取请求用于请求第二页面的页面数据,通过控制层,基于接收到的第二数据获取请求,从该程序包中获取第二页面对应的第二页面数据,向视图层发送该第二页面数据,以便后续视图层基于该第二页面数据来显示第二页面。
在一种可能实现方式中,第二数据获取请求携带第二页面的页面标识,则该步骤802包括:终端通过该控制层,接收该第二数据获取请求,基于该第二数据获取请求携带的页面标识,从该程序包中获取该页面标识对应的第二页面数据,向该视图层发送该第二页面数据。
在本申请实施例中,对于任一小程序,该小程序包括多个页面,该小程序对应的程序包包括每个页面对应的页面数据,在小程序包包括每个页面标识对应的页面数据。通过控制层接收到视图层发送的携带页面标识的第二数据获取请求后,基于该页面标识,从当前运行的小程序对应的程序包中获取该页面标识对应的页面数据,即获取到了第二页面数据。
在一种可能实现方式中,第二数据获取请求携带该第二页面的页面地址,则该步骤802包括:终端通过该控制层,接收该第二数据获取请求,基于该第二数据获取请求携带的页面地址,从该程序包中获取该页面地址指示的第二页面数据,向该视图层发送该第二页面数据。
在一种可能实现方式中,该视图层与控制层之间建立有第一访问服务,则该步骤802包括:终端通过该控制层,接收该第二数据获取请求,基于该第二数据获取请求,获取该程序包包括的第二页面数据,该第二页面数据指示该第二页面,基于该第一访问服务,向该视图层发送该第二页面数据。
803、终端通过该视图层,将该第二页面数据加载至该模板页面包括的第二页面容器中。
在本申请实施例中,模板页面包括多个页面容器,每个页面容器用于承载小程序的一个页面的页面数据,该第二页面容器与第一页面容器为该模板页面中两个不同的页面容器。通过视图层,将第二页面数据加载至第二页面容器中,以便将第一页面和第二页面对应的页面数据分离开,使得同一小程序下的不同页面对应的页面数据互不干扰。
804、终端通过该视图层,基于该第二页面容器,显示第二页面。
通过视图层将第一页面数据加载至第一页面容器中后,该第二页面容器包含了渲染出第二页面的页面数据,则基于该第一页面容器,即可显示出第一页面。
在一种可能实现方式中,通过视图层,将显示的第一页面切换为第二页面的过程,包括:将第一页面容器的状态设置为隐藏状态;将第二页面容器的状态设置为显示状态;基于当前处于显示状态的第二页面容器,显示该第二页面。
在本申请实施例中,模板页面包括的每个页面容器的状态包括隐藏状态或显示状态,每个页面容器用于承载小程序的一个页面对应的页面数据,即不同的页面容器用于显示不同的页面。对于任一页面容器,在该页面容器的状态为隐藏状态的情况下,不显示该页面容器对应的页面;在该页面容器的状态为显示状态的情况下,显示该页面容器对应的页面。
本申请实施例提供的方法,通过视图层与控制层之间的交互,能够获取小程序的多个页面的页面数据,并基于同一模板页面中不同的页面容器来显示小程序包含的不同页面,以保证显示小程序的页面时,将小程序包含的不同页面区分开,使得同一小程序下的不同页面对应的页面数据互不干扰。
并且,在显示小程序的页面时,在同一模板页面中仅将一个页面容器的状态为显示状态,将其余的页面容器的状态均为隐藏状态,以使显示出小程序的一个页面,避免同时显示多个页面出现多个页面重叠显示的情况,从而保证页面显示的准确性。
在上述实施例的基础上,提供了一种示例性的模板页面结构,如图9所示,该模板页面包括框架脚本及页面容器,该页面容器包括分页插件及页面框架,例如,该页面框架为iFrame(一种框架)。该页面框架包括页面脚本(Page.JS,Page JavaScript)、页面框架脚本、页面数据脚本、与页面无关的小程序框架及页面主体内容。
图10是本申请实施例提供的一种车载小程序运行装置的结构示意图,如图10所示,该装置包括:
发送模块1001,用于响应于在浏览器中输入的小程序标识,通过浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,第一数据获取请求携带小程序标识;
发送模块1001,还用于通过控制层,基于第一数据获取请求,获取小程序标识对应的程序包,程序包包括第一页面数据,第一页面数据指示小程序中的第一页面,向视图层发送小程序标识对应的第一页面数据;
渲染模块1002,用于通过视图层,基于第一页面数据,渲染出第一页面。
在一种可能实现方式中,渲染模块1002,用于通过视图层,基于第一页面数据,在浏览器的模板页面中渲染出第一页面。
在另一种可能实现方式中,渲染模块1002,用于通过视图层,将第一页面数据加载至模板页面包括的第一页面容器中;基于第一页面容器,显示第一页面。
在另一种可能实现方式中,如图11所示,装置还包括:
发送模块1001,还用于响应于将第一页面切换为第二页面的指令,通过视图层,向控制层发送第二数据获取请求,第二数据获取请求用于请求第二页面的第二页面数据;
发送模块1001,还用于通过控制层,基于第二数据获取请求获取程序包包括的第二页面数据,向视图层发送第二页面数据;
加载模块1003,用于通过视图层,将第二页面数据加载至模板页面包括的第二页面容器中;
渲染模块1002,还用于基于第二页面容器,显示第二页面。
在另一种可能实现方式中,如图11所示,装置还包括:
设置模块1004,用于将第一页面容器的状态设置为隐藏状态;
渲染模块1002,用于将第二页面容器的状态设置为显示状态;基于当前处于显示状态的第二页面容器,显示第二页面。
在另一种可能实现方式中,程序包还包括逻辑数据;如图11所示,装置还包括:
创建模块1005,用于通过控制层,创建小程序标识对应的逻辑层;
运行模块1006,用于通过逻辑层,从程序包中获取小程序标识对应的逻辑数据,运行逻辑数据。
在另一种可能实现方式中,运行模块1006,用于通过逻辑层,创建运行时Runtime环境;通过逻辑层,将逻辑数据加载至Runtime环境中;基于Runtime环境,运行逻辑数据。
在另一种可能实现方式中,运行模块1006,用于通过逻辑层,向控制层发送第三数据获取请求,第三数据获取请求携带小程序标识;通过控制层,基于第三数据获取请求,从程序包中获取小程序标识对应的逻辑数据,向逻辑层发送逻辑数据;通过逻辑层,接收逻辑数据。
在另一种可能实现方式中,如图11所示,装置还包括:
发送模块1001,还用于响应于在第一页面中的操作,通过视图层,向逻辑层发送操作对应的第一处理请求;
发送模块1001,还用于通过逻辑层,基于运行的逻辑数据,获取第一处理请求对应的处理结果,向视图层发送处理结果;
响应模块1007,用于通过视图层,基于处理结果,对操作进行响应。
在另一种可能实现方式中,发送模块1001,用于响应于在第一页面中的操作,通过视图层,调用视图层中的第一通信接口,向逻辑层中的第二通信接口发送操作对应的第一处理请求;通过逻辑层,调用逻辑层中的第三通信接口,向视图层中的第四通信接口发送处理结果。
在另一种可能实现方式中,第一通信接口为浏览器的模板页面中配置的接口,第五通信接口为模板页面包括的第一页面容器中配置的接口,且第一页面是基于浏览器的模板页面包括的第一页面容器显示的;发送模块1001,用于通过视图层,基于模板页面中的钩子Hook函数截获第一调用请求,第一调用请求是响应于在第一页面中的操作生成的,且第一调用请求用于请求调用第五通信接口;通过视图层,基于第一调用请求,调用第五通信接口关联的第一通信接口,向逻辑层中的第二通信接口发送第一处理请求。
在另一种可能实现方式中,发送模块1001,用于响应于在第一页面中的操作,通过视图层,调用视图层中的第六通信接口,向控制层发送操作对应的第二处理请求;通过控制层,基于第二处理请求,向逻辑层中的第七通信接口发送第一处理请求;通过逻辑层,调用逻辑层中的第八通信接口,向控制层发送处理结果;通过控制层,向视图层中的第九通信接口发送处理结果。
在另一种可能实现方式中,第六通信接口为浏览器的模板页面中配置的接口;第十通信接口为模板页面包括的第一页面容器中配置的接口,且第一页面是基于浏览器的模板页面包括的第一页面容器显示的;发送模块1001,用于通过视图层,基于模板页面中的钩子Hook函数截获第二调用请求,第二调用请求是响应于在第一页面中的操作生成的,且第二调用请求用于请求调用第十通信接口;通过视图层,基于第二调用请求,调用第十通信接口关联的第六通信接口,向控制层发送第二处理请求。
在另一种可能实现方式中,渲染模块1002,用于通过视图层,基于第一页面数据,向逻辑层发送第四数据获取请求,第四数据获取请求用于请求逻辑层生成与第一页面数据关联的第三页面数据;通过逻辑层,基于运行的逻辑数据生成第三页面数据,向视图层发送第三页面数据;通过视图层,基于第一页面数据及第三页面数据,渲染出第一页面。
在另一种可能实现方式中,发送模块1001,用于通过控制层,基于第一数据获取请求,确定小程序标识对应的下载地址;通过控制层,基于下载地址,下载小程序标识对应的程序包。
在另一种可能实现方式中,发送模块1001,用于响应于在浏览器中输入的访问地址,通过视图层,从访问地址中提取小程序标识,向控制层发送第一数据获取请求。
在另一种可能实现方式中,操作系统为车载操作系统,浏览器为车载操作系统中运行的浏览器。
需要说明的是:上述实施例提供的车载小程序运行装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的车载小程序运行装置与车载小程序运行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的车载小程序运行方法所执行的操作。
图12示出了本申请一个示例性实施例提供的终端1200的结构框图。该终端1200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端及飞行器等。终端1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1201所执行以实现本申请中方法实施例提供的车载小程序运行方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207和电源1209中的至少一种。
外围设备接口1203可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
电源1208用于为终端1200中的各个组件进行供电。电源1208可以是交流电、直流电、一次性电池或可充电电池。当电源1208包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的车载小程序运行方法所执行的操作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述方面的车载小程序运行方法所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种车载小程序运行方法,其特征在于,所述方法包括:
响应于在浏览器中输入的小程序标识,通过所述浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,所述第一数据获取请求携带所述小程序标识;
通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包,所述程序包包括第一页面数据,所述第一页面数据指示小程序中的第一页面,向所述视图层发送所述小程序标识对应的所述第一页面数据;
通过所述视图层,基于所述第一页面数据,渲染出所述第一页面。
2.根据权利要求1所述的方法,其特征在于,所述通过所述视图层,基于所述第一页面数据,渲染出所述第一页面,包括:
通过所述视图层,基于所述第一页面数据,在所述浏览器的模板页面中渲染出所述第一页面。
3.根据权利要求2所述的方法,其特征在于,所述通过所述视图层,基于所述第一页面数据,在所述浏览器的模板页面中渲染出所述第一页面,包括:
通过所述视图层,将所述第一页面数据加载至所述模板页面包括的第一页面容器中;
基于所述第一页面容器,显示所述第一页面。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一页面容器,显示所述第一页面之后,所述方法还包括:
响应于将所述第一页面切换为第二页面的指令,通过所述视图层,向所述控制层发送第二数据获取请求,所述第二数据获取请求用于请求所述第二页面的第二页面数据;
通过所述控制层,基于所述第二数据获取请求获取所述程序包包括的所述第二页面数据,向所述视图层发送所述第二页面数据;
通过所述视图层,将所述第二页面数据加载至所述模板页面包括的第二页面容器中;
基于所述第二页面容器,显示所述第二页面。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第二页面容器,显示所述第二页面之前,所述方法还包括:
将所述第一页面容器的状态设置为隐藏状态;
所述基于所述第二页面容器,显示所述第二页面,包括:
将所述第二页面容器的状态设置为显示状态;
基于当前处于所述显示状态的所述第二页面容器,显示所述第二页面。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述程序包还包括逻辑数据;所述通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包之后,所述方法还包括:
通过所述控制层,创建所述小程序标识对应的逻辑层;
通过所述逻辑层,从所述程序包中获取所述小程序标识对应的所述逻辑数据,运行所述逻辑数据。
7.根据权利要求6所述的方法,其特征在于,所述通过所述逻辑层,从所述程序包中获取所述小程序标识对应的所述逻辑数据,包括:
通过所述逻辑层,向所述控制层发送第三数据获取请求,所述第三数据获取请求携带所述小程序标识;
通过所述控制层,基于所述第三数据获取请求,从所述程序包中获取所述小程序标识对应的所述逻辑数据,向所述逻辑层发送所述逻辑数据;
通过所述逻辑层,接收所述逻辑数据。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于在所述第一页面中的操作,通过所述视图层,向所述逻辑层发送所述操作对应的第一处理请求;
通过所述逻辑层,基于运行的所述逻辑数据,获取所述第一处理请求对应的处理结果,向所述视图层发送所述处理结果;
通过所述视图层,基于所述处理结果,对所述操作进行响应。
9.根据权利要求8所述的方法,其特征在于,所述响应于在所述第一页面中的操作,通过所述视图层,向所述逻辑层发送所述操作对应的第一处理请求,包括:
响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第一通信接口,向所述逻辑层中的第二通信接口发送所述操作对应的第一处理请求;
所述向所述视图层发送所述处理结果,包括:
通过所述逻辑层,调用所述逻辑层中的第三通信接口,向所述视图层中的第四通信接口发送所述处理结果。
10.根据权利要求9所述的方法,其特征在于,所述第一通信接口为所述浏览器的模板页面中配置的接口,第五通信接口为所述模板页面包括的第一页面容器中配置的接口,且所述第一页面是基于所述第一页面容器显示的;
所述响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第一通信接口,向所述逻辑层中的第二通信接口发送所述操作对应的第一处理请求,包括:
通过所述视图层,基于所述模板页面中的钩子Hook函数截获第一调用请求,所述第一调用请求是响应于在所述第一页面中的操作生成的,且所述第一调用请求用于请求调用所述第五通信接口;
通过所述视图层,基于所述第一调用请求,调用所述第五通信接口关联的所述第一通信接口,向所述逻辑层中的所述第二通信接口发送所述第一处理请求。
11.根据权利要求8所述的方法,其特征在于,所述响应于在所述第一页面中的操作,通过所述视图层,向所述逻辑层发送所述操作对应的第一处理请求,包括:
响应于在所述第一页面中的操作,通过所述视图层,调用所述视图层中的第六通信接口,向所述控制层发送所述操作对应的第二处理请求;
通过所述控制层,基于所述第二处理请求,向所述逻辑层中的第七通信接口发送所述第一处理请求;
所述向所述视图层发送所述处理结果,包括:
通过所述逻辑层,调用所述逻辑层中的第八通信接口,向所述控制层发送所述处理结果;
通过所述控制层,向所述视图层中的第九通信接口发送所述处理结果。
12.根据权利要求1-5任一项所述的方法,其特征在于,所述操作系统为车载操作系统,所述浏览器为所述车载操作系统中运行的浏览器。
13.一种车载小程序运行装置,其特征在于,所述装置包括:
发送模块,用于响应于在浏览器中输入的小程序标识,通过所述浏览器中的视图层,向操作系统中运行的控制层发送第一数据获取请求,所述第一数据获取请求携带所述小程序标识;
所述发送模块,还用于通过所述控制层,基于所述第一数据获取请求,获取所述小程序标识对应的程序包,所述程序包包括第一页面数据,所述第一页面数据指示小程序中的第一页面,向所述视图层发送所述小程序标识对应的所述第一页面数据;
渲染模块,用于通过所述视图层,基于所述第一页面数据,渲染出所述第一页面。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至12任一权利要求所述的车载小程序运行方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至12任一权利要求所述的车载小程序运行方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210057733.3A CN114077368B (zh) | 2022-01-19 | 2022-01-19 | 车载小程序运行方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210057733.3A CN114077368B (zh) | 2022-01-19 | 2022-01-19 | 车载小程序运行方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114077368A true CN114077368A (zh) | 2022-02-22 |
CN114077368B CN114077368B (zh) | 2022-06-28 |
Family
ID=80284600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210057733.3A Active CN114077368B (zh) | 2022-01-19 | 2022-01-19 | 车载小程序运行方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114077368B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169157A1 (zh) * | 2022-03-08 | 2023-09-14 | 腾讯科技(深圳)有限公司 | 子应用程序的运行方法、装置、电子设备、程序产品及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082070A1 (en) * | 2016-09-22 | 2018-03-22 | International Business Machines Corporation | Systems and methods for rule based dynamic selection of rendering browsers |
CN108108219A (zh) * | 2017-12-30 | 2018-06-01 | 上海壹账通金融科技有限公司 | 应用程序运行方法、装置、计算机设备和存储介质 |
US20180219849A1 (en) * | 2017-01-31 | 2018-08-02 | Glance Networks, Inc. | Method and Apparatus for Enabling Co-Browsing of Third Party Websites |
US20190220304A1 (en) * | 2016-11-25 | 2019-07-18 | Tencent Technology (Shenzhen) Company Limited | Method and device for processing application program page, and storage medium |
CN111381903A (zh) * | 2020-03-18 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 程序运行方法、装置、设备及介质 |
CN111427569A (zh) * | 2019-01-10 | 2020-07-17 | 北京嘀嘀无限科技发展有限公司 | 免安装程序适配方法、装置、电子设备及存储介质 |
CN111475246A (zh) * | 2020-04-10 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 小程序页面显示方法、装置、终端和存储介质 |
US10733260B1 (en) * | 2019-05-03 | 2020-08-04 | Microsoft Technology Licensing, Llc | Page display by hosted browser within controlling browser |
CN111580879A (zh) * | 2020-04-30 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 小程序的运行方法、装置、电子设备及计算机存储介质 |
CN113220374A (zh) * | 2020-01-21 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 软件处理方法和装置 |
CN113419710A (zh) * | 2021-06-25 | 2021-09-21 | 北京悟空出行科技有限公司 | 小程序的开发方法、装置、电子设备和介质 |
-
2022
- 2022-01-19 CN CN202210057733.3A patent/CN114077368B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082070A1 (en) * | 2016-09-22 | 2018-03-22 | International Business Machines Corporation | Systems and methods for rule based dynamic selection of rendering browsers |
US20190220304A1 (en) * | 2016-11-25 | 2019-07-18 | Tencent Technology (Shenzhen) Company Limited | Method and device for processing application program page, and storage medium |
US20180219849A1 (en) * | 2017-01-31 | 2018-08-02 | Glance Networks, Inc. | Method and Apparatus for Enabling Co-Browsing of Third Party Websites |
CN108108219A (zh) * | 2017-12-30 | 2018-06-01 | 上海壹账通金融科技有限公司 | 应用程序运行方法、装置、计算机设备和存储介质 |
CN111427569A (zh) * | 2019-01-10 | 2020-07-17 | 北京嘀嘀无限科技发展有限公司 | 免安装程序适配方法、装置、电子设备及存储介质 |
US10733260B1 (en) * | 2019-05-03 | 2020-08-04 | Microsoft Technology Licensing, Llc | Page display by hosted browser within controlling browser |
CN113220374A (zh) * | 2020-01-21 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 软件处理方法和装置 |
CN111381903A (zh) * | 2020-03-18 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 程序运行方法、装置、设备及介质 |
CN111475246A (zh) * | 2020-04-10 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 小程序页面显示方法、装置、终端和存储介质 |
CN111580879A (zh) * | 2020-04-30 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 小程序的运行方法、装置、电子设备及计算机存储介质 |
CN113419710A (zh) * | 2021-06-25 | 2021-09-21 | 北京悟空出行科技有限公司 | 小程序的开发方法、装置、电子设备和介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169157A1 (zh) * | 2022-03-08 | 2023-09-14 | 腾讯科技(深圳)有限公司 | 子应用程序的运行方法、装置、电子设备、程序产品及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114077368B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845856B (zh) | 基于对象的同步更新方法、装置、存储介质及设备 | |
EP2754263B1 (en) | Mobile terminal, image display device mounted on vehicle and data processing method using the same | |
CN110990075B (zh) | 快应用的启动方法、装置、设备及存储介质 | |
CN110874217B (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN110990105B (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN111026491B (zh) | 界面显示方法、装置、电子设备、服务器及存储介质 | |
CN112749362A (zh) | 控件创建方法、装置、设备及存储介质 | |
CN113835571A (zh) | 一种终端设备、信息展示方法和存储介质 | |
CN114077368B (zh) | 车载小程序运行方法、装置、计算机设备及存储介质 | |
CN111008057A (zh) | 页面展示方法、装置及存储介质 | |
CN114489896A (zh) | 内容显示方法、装置、存储介质及电子设备 | |
CN111046265B (zh) | 卡片数据显示方法、装置、设备及存储介质 | |
CN114530148A (zh) | 一种控制方法、装置及电子设备 | |
CN111240776B (zh) | 动态壁纸设置方法、装置、存储介质及电子设备 | |
WO2023005711A1 (zh) | 一种服务的推荐方法及电子设备 | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN114675786A (zh) | 一种大容量存储挂载方法、装置、终端及介质 | |
CN113051015A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN110868640A (zh) | 资源转移方法、装置、设备及存储介质 | |
CN113938550B (zh) | 一种终端设备、信息反馈方法和存储介质 | |
US20230418445A1 (en) | Method for migrating display element across applications and electronic device | |
CN115002820B (zh) | 通话状态监听方法、装置、设备、存储介质 | |
US20240089560A1 (en) | Video generation method, apparatus, electronic device and storage medium | |
CN117857646A (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN116801008A (zh) | 媒体信息素材处理方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40065987 Country of ref document: HK |