CN113377469A - 移动应用的业务界面显示方法、装置、终端及存储介质 - Google Patents
移动应用的业务界面显示方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN113377469A CN113377469A CN202010157558.6A CN202010157558A CN113377469A CN 113377469 A CN113377469 A CN 113377469A CN 202010157558 A CN202010157558 A CN 202010157558A CN 113377469 A CN113377469 A CN 113377469A
- Authority
- CN
- China
- Prior art keywords
- target
- interface
- interface template
- mobile application
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Abstract
本发明公开了移动应用的业务界面显示方法、装置、终端及存储介质,其中,该方法包括:响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;接收服务器根据所述业务请求返回的目标业务数据,以及该目标业务数据所对应的界面模板标识;确定指定存储空间中与界面模板标识相匹配的目标界面模板信息;该目标界面模板信息包括目标界面模板以及与目标界面模板相关联的至少一个目标脚本;根据目标业务数据和所述至少一个目标脚本,解析目标界面模板得到目标业务界面所对应的控件树模型;根据控件树模型显示目标业务界面。本发明简化了移动应用中业务界面的动态更新,降低了更新成本,实现了业务界面的动态化和逻辑的动态下发。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种移动应用的业务界面显示方法、装置、终端及存储介质。
背景技术
Flutter是Google推出并开源的移动端UI(User Interface,用户界面)开发框架,使用Dart语言(出自Google,是一种面向对象编程的强类型语言)实现,使用Flutter开发的APP(Application,应用程序)可以同时运行在IOS平台与Android平台上,并且性能可以与原生应用相媲美。
目前,为了迎合业务模块的多变性,APP中各业务界面的经常性变化至关重要。相关技术中,基于Flutter开发的移动端APP,对于APP功能的任何修改包括各业务界面的更新都需要重新发布修改版本的APP,用户需要重新下载并安装该修改版本的APP才能实现对移动端应用业务界面的更新,导致移动应用中业务界面的动态更新过于繁琐,成本高且灵活性差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种移动应用的业务界面显示方法、装置、终端及存储介质。所述技术方案如下:
一方面,提供了一种移动应用的业务界面显示方法,所述方法包括:
响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;
接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;
根据所述控件树模型显示所述目标业务界面。
另一方面,提供了一种移动应用的业务界面显示方法,所述方法包括:
接收移动应用中目标业务界面的业务请求;
确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
返回所述目标业务数据和所述界面模板标识;所述界面模板标识用于确定指定存储空间中相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
另一方面,提供了一种移动应用的业务界面显示装置,所述装置包括:
显示响应模块,用于响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;
第一接收模块,用于接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一确定模块,用于确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
解析模块,用于根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;
显示模块,用于根据所述控件树模型显示所述目标业务界面。
可选的,所述装置还包括:
第一发送模块,用于在所述移动应用启动时,向所述服务器发送更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息,所述第一版本信息用于所述服务器判断所述指定存储空间中的界面模板信息是否为最新版本,并在所述界面模板信息不是最新版本时返回所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
第三接收模块,用于接收所述服务器返回的所述更新界面模板信息;
更新模块,用于根据所述更新界面模板信息,对所述指定存储空间中的所述界面模板信息进行更新。
可选的,所述更新模块包括:
第一更新子模块,用于将所述指定存储空间中所述界面模板信息中的界面模板更新为所述最新版本的界面模板;和/或,
第二更新子模块,用于将所述指定存储空间中所述界面模板信息中的至少一个脚本更新为所述最新版本的脚本。
可选的,所述解析模块包括:
第三确定模块,用于确定所述目标界面模板中每个节点对应的解析类;
第一解析子模块,用于基于所述每个节点对应的解析类,将所述目标界面模板解析为基础控件树模型;
第二解析子模块,用于根据所述目标业务数据和所述至少一个目标脚本解析所述基础控件树模型,得到所述目标业务界面所对应的控件树模型。
可选的,所述第二解析子模块包括:
第四确定模块,用于确定所述基础控件树模型中待解析参数的参数标识;
第五确定模块,用于确定所述目标业务数据中与所述参数标识相匹配的匹配业务数据,将所述匹配业务数据作为所述待解析参数的参数值;
第六确定模块,用于确定所述基础控件树模型中待解析方法的方法标识;
第七确定模块,用于确定所述至少一个目标脚本中与所述方法标识相匹配的匹配目标脚本;
调用关系建立模块,用于建立所述待解析方法与所述匹配目标脚本之间的调用关系;所述调用关系用于在执行所述待解析方法时,调用并运行所述匹配目标脚本,获取所述匹配目标脚本的运行结果;
第八确定模块,用于将包含所述参数值和所述调用关系的基础控件树模型作为所述控件树模型。
另一方面,提供了一种移动应用的业务界面显示装置,所述装置包括:
第二接收模块,用于接收移动应用中目标业务界面的业务请求;
第二确定模块,用于确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一返回模块,用于返回所述目标业务数据和所述界面模板标识;所述界面模板标识用于确定指定存储空间中相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
可选的,所述装置还包括:
第四接收模块,用于接收所述移动应用在启动时发送的更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息;
判断模块,用于根据所述第一版本信息,判断所述指定存储空间中的界面模板信息是否为最新版本;
第九确定模块,用于在判断模块判断的结果为否时,确定所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
第二返回模块,用于返回所述更新界面模板信息;所述更新界面模板信息用于对所述指定存储空间中的所述界面模板信息进行更新。
另一方面,提供了一种终端,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序、由所述处理器加载并执行以实现上述终端侧的移动应用的业务界面显示方法。
另一方面,提供了一种服务器,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序、由所述处理器加载并执行以实现上述服务器侧的移动应用的业务界面显示方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如上述的移动应用的业务界面显示方法。
本发明实施例通过响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求,接收服务器根据该业务请求返回的目标业务数据以及该目标业务数据所对应的界面模板标识,并确定指定存储空间中与该界面模板标识相匹配的目标界面模板信息,该目标界面模板信息包括目标界面模板以及与目标界面模板相关联的至少一个目标脚本,进而根据目标业务数据和该至少一个目标脚本解析目标界面模板得到上述目标业务界面所对应的控件树模型,并根据该控件树模型显示目标业务界面,可见上述方案中目标业务界面的显示基于界面模板信息,因此当需要更新业务界面时只需更新界面模板信息即可,无需重新发布和安装APP,从而大大简化了移动应用中业务界面的动态更新,降低了动态更新成本,灵活性大大提高,不仅有利于实现Flutter业务界面的动态化还有利于实现逻辑的动态化。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种移动应用的业务界面显示方法的流程示意图;
图3是本发明实施例提供的另一种移动应用的业务界面显示方法的流程示意图;
图4是本发明实施例提供的解析基础控件树模型的一种可选方法的流程示意图;
图5是本发明实施例提供的控件树模型、元素(Element)树模型和渲染对象树模型之间关系的一种可选示意图;
图6是本发明实施例提供的另一种移动应用的业务界面显示方法的流程示意图;
图7是本发明实施例提供的另一种移动应用的业务界面显示方法的流程示意图;
图8是本发明实施例提供的一种移动应用的业务界面显示装置的结构示意图;
图9是本发明实施例提供的另一种移动应用的业务界面显示装置的结构示意图;
图10是本发明实施例提供的一种终端的硬件结构框图;
图11是本发明实施例提供的一种服务器的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其所示为本发明实施例提供的一种实施环境示意图,该实施环境可以包括服务器110和至少一个移动终端120,该至少一个移动终端120通过网络与服务器110连接,该网络可以是有线网络或者无线网络。
其中,移动终端120中安装有基于Flutter开发的移动应用即移动端应用程序。Flutter是Google推出并开源的移动端UI开发框架,使用Dart语言实现,使用Flutter开发的移动应用可以同时运行在IOS平台与Android平台上,并且性能可以与原生应用相媲美。Flutter的控件库提供了非常丰富的控件,包括最基本的文本、图片、容器、输入框和动画等等,在Flutter中“一切皆是控件”,通过组合、嵌套不同类型的控件,就可以构建出任意功能、任意复杂度的界面。Flutter控件主要分为两大类即静态控件和动态控件,其中,静态控件用来展示静态的文本或者图片,如果控件需要根据外部数据或者用户操作来改变的话,就需要使用动态控件。移动终端120所配置的操作系统可以但不限于包括IOS操作系统、Android操作系统等等,该移动终端120可以是智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等等。
服务器110可以为移动终端120中的移动应用提供后台服务,例如存储各移动应用的业务界面所对应的业务数据并能响应相应的业务请求返回业务数据等。其中,服务器110可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
请参阅图2,其所示为本发明实施例提供的一种移动应用的业务界面显示方法的流程示意图,该方法可以应用于图1中的移动终端。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201,响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求。
本说明书实施例中,移动应用为基于Flutter开发的移动端应用程序。目标业务界面为当前需要显示的移动应用中的业务界面,其中,业务界面所对应的具体业务与具体的移动应用相关联,例如,移动应用为TAiQ手机游戏时,业务界面可以但不限于包括赛后视频界面、自定义玩法界面、战中陪伴界面、音乐管理界面等等。当用户需要进入移动应用中的某个业务界面时,可以在进入该移动应用后,点击该业务界面对应的进入接口,相应的,移动终端即可接收到显示该业务界面的显示指令,并响应于该显示指令向服务器发送业务请求。
S203,接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识。
本说明书实施例中,业务数据与业务界面具有一一对应关系,具体的,可以为移动应用中每个业务界面设置一个界面标识,通过该界面标识可以唯一确定一个移动应用的业务界面,业务请求中可以携带目标业务界面的界面标识。在服务器中存储有与移动应用的业务界面相对应的业务数据,该业务数据可以采用相应业务界面的界面标识作为其业务数据的标识,当接收到业务请求后,可以根据业务请求中携带的界面标识确定对应的目标业务数据。
本说明书实施例中,服务器中预先存储有业务数据与界面模板标识的映射关系,其中,界面模板标识用于唯一标识一个界面模板。本说明书实施例中,界面模板是指用Json数据格式表示的界面配置信息,移动应用产品的界面布局可以直观的归纳为一个树型结构,由于在Flutter中“一切皆是控件”,通过组合、嵌套不同类型的控件,就可以构建出任意功能、任意复杂度的界面,因此,界面模板也可以理解为界面所对应控件树的配置信息,可以包括控件树中各个节点的节点名称、节点之间的层级关系以及节点的布局信息,其中,节点的布局信息可以包括节点的位置、节点尺寸等信息,此外,界面配置信息中还可以包括节点与事件的绑定信息,事件可以包括需要调用关联的js脚本的方法。
服务器在确定了目标业务数据之后,可以根据业务数据与界面模板标识的映射关系,确定目标业务数据所对应的界面模板标识,并将目标业务数据和其对应的界面目标模板标识返回给移动终端。
S205,确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息。
其中,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本。指定存储空间可以是移动终端的本地内存空间。
脚本是一种纯文本保存的程序,一般说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支。具体的实施中,脚本可以是基于JavaScript的脚本。
本说明书实施例中,移动终端可以在移动应用首次启动时从服务器获取该移动应用对应的所有界面模板信息,并将其存储在本地内存空间中,当该移动应用中的某个业务界面需要显示时即可根据本地内存中存储的相应界面模板信息进行显示。其中,移动终端在存储界面模板信息时可以同时存储界面模板标识与界面模板信息的映射关系,从而在接收到服务器返回的界面模板标识后,可以根据界面模板标识与界面模板信息之间的映射关系,确定目标界面模板信息。
本说明书实施例中,为了确保移动终端中存储的界面模板信息为最新版本的界面模板信息,如图3所示,该方法还可以包括:
S301,在所述移动应用启动时,向所述服务器发送更新请求。
其中,更新请求包括指定存储空间中界面模板信息的第一版本信息,该第一版本信息用于所述服务器判断所述指定存储空间中的界面模板信息是否为最新版本,并在所述界面模板信息不是最新版本时返回所述界面模板信息对应的更新界面模板信息,该更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本。
具体的,可以在移动应用每次启动时,都向服务器发送更新请求,从而可以在本地内存中的界面模板信息不是最新版本时能够及时获取到后台下发的最新版本的界面模板和/或脚本。
实际应用中,更新请求中还可以包括移动应用的第二版本信息以及移动终端的操作系统类型,服务器根据第二版本信息和操作系统类型确定后台存储的该移动应用对应的最新版本的界面模板信息,当最新版本的界面模板和脚本中有任意一个的版本信息低于第一版本信息即可认为指定存储空间中的界面模板信息不是最新版本。
具体的,第一版本信息可以包括对应于界面模板信息中界面模板的第一子版本信息,以及对应于界面模板信息中脚本的第二子版本信息,服务器在确定出后台存储的界面模板信息中最新版本的界面模板和脚本之后,可以判断最新版本的界面模板的版本信息是否低于第一子版本信息,以及判断最新版本的脚本的版本信息是否低于第二子版本信息,当有其中一个判断的结果为是时,则可以确定指定存储空间中的相应界面模板信息不是最新版本。若界面模板不是最新版本,但脚本是最新版本,则可以获取最新版本的界面模板生成相应的更新界面模板信息;若界面模板是最新版本,但脚本不是最新版本,则可以获取最新版本的脚本生成相应的更新界面模板信息;若界面模板不是最新版本,且脚本也不是最新版本,则可以获取最新版本的界面模板和脚本生成相应的更新界面目标信息。
其中,最新版本的界面模板可以通过对后台相应界面模板的修改生成,修改方式可以是手动修改。为了提高后台最新版本的界面模板的生成效率,一个可选的实施方式是采用flutter_analysis库,通过对Dart文件进行语法分析生成本发明实施例中的界面模板。flutter_analysis库可以对dart文件做语法分析,可以找到dart声明的类、类的方法、方法的具体内容,并通过分析把原本通过dart描述的控件树的配置信息自动转换成Json数据格式的界面配置信息即界面模板。最新版本的脚本可以通过后台服务器上传并存储在后台服务器上。
以下是通过flutter_analysis库解析生成的界面模板的一个示例,可以理解的,该示例并不对本发明构成具体的限定:
S303,接收所述服务器返回的所述更新界面模板信息。
S305,根据所述更新界面模板信息,对所述指定存储空间中的所述界面模板信息进行更新。
移动终端在接收到服务器返回的更新界面模板信息后,根据该更新界面模板信息对指定存储空间中的界面模板信息进行更新。具体的,当更新界面模板信息中为最新版本的界面模板时,只将指定存储空间中相应界面模板信息中的界面模板更新为最新版本;当更新界面模板信息中为最新版本的脚本时,只将指定存储空间中相应界面模板信息中的脚本更新为最新版本;当更新界面模板信息中为最新版本的界面模板和脚本时,将指定存储空间中相应界面模板信息中的界面模板和脚本同时更新为最新版本。上述的更新方式,不仅提高了移动终端中移动应用对应界面模板信息的更新效率,而且节省了数据传输资源,实现了Flutter业务界面和逻辑的动态化更新。
本说明书实施例中,基于Flutter的移动应用运行在DartVM(Virtual Machine,虚拟机),为了获取存储在本地内存空间中的界面模板信息,可以将MethodChannel作为其与原生层Native的通讯桥梁,通过MethodChannel获取与界面模板标识相匹配的目标界面模板信息。
S207,根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型。
具体的,步骤S207在执行时可以包括以下步骤:
(1)确定目标界面模板中每个节点对应的解析类。由于Flutter中不支持反射操作,为了解析Json数据格式的界面模板,本说明书实施例中为界面模板中的每个节点声明一个解析类,具体的实施中,界面模板中的每个节点可以包含一个用于表征其解析类的className,通过该className来指定要解析成哪个控件对象,因此,可以通过获取界面模板中各个节点对应的className的具体内容来确定每个节点对应的解析类。参见前述的界面模板示例,其中,className指定的解析类包括“Scaffold”、“Text”、“Container”等等。
(2)基于所述每个节点对应的解析类,将所述目标界面模板解析为基础控件树模型。具体的,在确定了目标界面模板中每个节点对应的解析类之后,即可基于对应的解析类以及目标界面模板中对应于每个节点的描述信息以控件的树型结构表示目标界面模板,此时得到的控件的树型结构为基础控件树模型,还需要进一步基于返回的目标业务数据以及确定的目标脚本进一步完善。
(3)根据所述目标业务数据和所述至少一个目标脚本解析所述基础控件树模型,得到所述目标业务界面所对应的控件树模型。
对于基础控件树模型的解析可以采用图4提供的方法,如图4所示,可以包括:
S401,确定所述基础控件树模型中待解析参数的参数标识。
其中,待解析参数为在目标业务数据中存在相对应参数值的参数。为了能够准确的在目标业务数据中找到各个待解析参数的参数值,本说明书实施例中为每个待解析参数配置一个参数标识,该参数标识能够唯一标识一个待解析参数,同时为目标业务数据中的每个业务数据对象配置一个数据对象标识,并建立数据对象标识与参数标识的对应关系。
实际应用中,待解析参数可以裸参数,也可以是位于界面模板包括的某个方法引用中的参数,当该待解析参数为裸参数时,直接从目标业务数据中获取该参数对应的匹配业务数据;当该待解析参数是界面模板包括的方法引用中的参数时,可以先根据方法名确定对应的方法引用,进而确定该方法引用中的待解析参数,然后从目标业务数据中获取该待解析参数对应的匹配业务数据。
S403,确定所述目标业务数据中与所述参数标识相匹配的匹配业务数据,将所述匹配业务数据作为所述待解析参数的参数值。
具体的,可以根据数据对象标识与参数标识的对应关系确定各个参数标识对应的数据对象标识,进而确定各个参数标识对应的匹配业务数据,从目标业务数据中获取匹配业务数据,并将匹配业务数据作为相应待解析参数的参数值赋给待解析参数。
S405,确定所述基础控件树模型中待解析方法的方法标识。
其中,待解析方法为在至少一个目标脚本中存在相对应脚本的方法。为了能够准确的在至少一个目标脚本中找到各个待解析方法对应的脚本,本说明书实施例中为每个待解析方法配置一个方法标识,该方法标识能够唯一标识一个待解析方法,同时为至少一个目标脚本中的每个目标脚本配置一个脚本标识,并建立方法标识与脚本标识的对应关系。
S407,确定所述至少一个目标脚本中与所述方法标识相匹配的匹配目标脚本。
具体的,可以根据方法标识与脚本标识的对应关系确定各个方法标识对应的脚本标识,进而确定各个方法标识对应的匹配目标脚本。
S409,建立所述待解析方法与所述匹配目标脚本之间的调用关系。
其中,所述调用关系用于在执行所述待解析方法时,调用并运行所述匹配目标脚本,获取所述匹配目标脚本的运行结果。本说明书实施例中,基于JavaScript的脚本只能在Native端调用运行,因此,当Flutter在执行某个待解析方法且需要调用某个脚本时,可以先通过调用关系确定匹配目标脚本,并通过通讯桥梁MethodChannel将匹配目标脚本的脚本标识发送给Native端,由Native端基于脚本标识从本地内存空间中获取对应的匹配目标脚本并运行该匹配目标脚本得到运行结果,然后通过通讯桥梁MethodChannel将该运行结果返回给Flutter。
S411,将包含所述参数值和所述调用关系的基础控件树模型作为所述控件树模型。
S209,根据所述控件树模型显示所述目标业务界面。
具体的,将Flutter的控件树模型转换成对应的渲染对象(RenderObject)树来实现布局和绘制操作进而得到显示的目标业务界面,在Flutter界面渲染过程分为三个阶段:布局、绘制、合成,布局和绘制在Flutter框架中完成,合成则交由引擎负责。控件树中的每个控件通过实现RenderObjectWidget#createRenderObject(BuildContext context)→RenderObject方法来创建对应的不同类型的RenderObject对象,组成渲染对象树。
Flutter的渲染机制与React Native(以下简称RN)不同,RN是将JS编写的对应组件转换为原生组件去渲染,而Flutter是基于最底层Skia的图形库去渲染,Flutter使用Skia作为其2D渲染引擎,Skia是Google的一个2D图形处理函数库,包含字型、坐标转换,以及点阵图都有高效能且简洁的表现。
实际应用中,基于Flutter的业务界面的实现包含三棵树即控件树模型、元素(Element)树模型和渲染对象树模型,这三棵树的关系可以参见5提供的示意图,其中,控件树模型可以存储渲染内容、视图布局信息;Element树模型是Flutter用来分离控件树和真正的渲染对象的中间层,Element树模型用于存放上下文,通过Element遍历控件树,Element同时持有控件和渲染对象;渲染对象树模型可以根据控件树模型的渲染内容以及视图布局信息进行布局、绘制和合成得到最终的Flutter业务界面。由此可见,通过动态生成一个业务界面对应的控件树模型即可实现一个该Flutter业务界面的动态化更新。
由本发明实施例的上述技术方案可见,本发明实施例的业务界面的显示基于界面模板信息,该界面模板信息包括界面模板和与界面模板相关联的至少一个脚本,因此,当需要更新业务界面时只需动态更新界面模板信息即可,无需重新发布和安装APP,从而大大简化了移动应用中业务界面的动态更新,降低了动态更新成本,灵活性大大提高,不仅有利于实现Flutter业务界面的动态化,由于脚本和要执行的逻辑以及业务数据都是动态下发的,因此还有利于实现Flutter业务界面中逻辑的动态性。
此外,本发明实例中Flutter业务界面的显示方法可以在Android端和IOS端实现,也即基于上述实现的Flutter业务界面的动态更新可以在Android端和IOS端实现。并且控件树模型的生成不是基于JSCoreScript,避免了使用JSCoreScript开发存在的代码侵入性强、成本高以及Flutter与Native频繁交互、性能较差的缺陷。
请参阅图6,其所示为本发明实施例提供的另一种移动应用的业务界面显示方法的流程示意图,该方法可以应用于图1中的服务器,如图6所示,该方法可以包括:
S601,接收移动应用中目标业务界面的业务请求。
具体的,移动应用为基于Flutter开发的移动端应用程序。目标业务界面为当前需要显示的移动应用中的业务界面,其中,业务界面所对应的具体业务与具体的移动应用相关联,例如,移动应用为TAiQ手机游戏时,业务界面可以但不限于包括赛后视频界面、自定义玩法界面、战中陪伴界面、音乐管理界面等等。当用户需要进入移动应用中的某个业务界面时,可以在进入该移动应用后,点击该业务界面对应的进入接口,移动终端即可接收到显示该业务界面的显示指令,并响应于该显示指令向服务器发送业务请求。相应的,服务器接收移动终端发送的该移动应用中目标业务界面的业务请求。
S603,确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识。
本说明书实施例中,业务数据与业务界面具有一一对应关系,具体的,可以为移动应用中每个业务界面设置一个界面标识,通过该界面标识可以唯一确定一个移动应用的业务界面,业务请求中可以携带目标业务界面的界面标识。在服务器中存储有与移动应用的业务界面相对应的业务数据,该业务数据可以采用相应业务界面的界面标识作为其业务数据的标识,当接收到业务请求后,服务器可以根据业务请求中携带的界面标识确定对应的目标业务数据。
本说明书实施例中,服务器中预先存储有业务数据与界面模板标识的映射关系,其中,界面模板标识用于唯一标识一个界面模板。界面模板是指用Json数据格式表示的界面配置信息,移动应用产品的界面布局可以直观的归纳为一个树型结构,由于在Flutter中“一切皆是控件”,通过组合、嵌套不同类型的控件,就可以构建出任意功能、任意复杂度的界面,因此,界面模板也可以理解为界面所对应控件树的配置信息,可以包括控件树中各个节点的节点名称、节点之间的层级关系以及节点的布局信息,其中,节点的布局信息可以包括节点的位置、节点尺寸等信息,此外,界面配置信息中还可以包括节点与事件的绑定信息,事件可以包括需要调用关联的js脚本的方法。
服务器在确定了目标业务数据之后,可以根据业务数据与界面模板标识的映射关系,确定目标业务数据所对应的界面模板标识。
S605,返回所述目标业务数据和所述界面模板标识。
其中,界面模板标识用于移动终端确定指定存储空间中存储的与所述界面模板标识相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
本说明书实施例中,在服务器存储有移动应用对应的所有界面模板信息,移动终端可以在移动应用的首次启动时从服务器获取该移动应用对应的所有界面模板信息并存储在本地内存空间中。此外,在界面模板信息有更新时,服务器还可以生成最新版本的界面模板信息,为了确保移动终端的本地内存空间中存储的界面模板信息为最新版的界面模板信息,如图7所示,该方法还可以包括:
S701,接收所述移动应用在启动时发送的更新请求。
其中,所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息。
具体的,可以在移动应用每次启动时,都向服务器发送更新请求,从而可以在本地内存空间中的界面模板信息不是最新版本时能够及时获取到后台下发的最新版本的界面模板和/或脚本。
S703,根据所述第一版本信息,判断所述指定存储空间中的界面模板信息是否为最新版本。
具体的,第一版本信息可以包括对应于界面模板信息中界面模板的第一子版本信息,以及对应于界面模板信息中脚本的第二子版本信息,服务器在确定出后台存储的界面模板信息中最新版本的界面模板和脚本之后,可以判断最新版本的界面模板的版本信息是否低于第一子版本信息,以及判断最新版本的脚本的版本信息是否低于第二子版本信息。若最新版本的界面模板的版本信息低于第一子版本信息和/或最新版本的脚本的版本信息低于第二子版本信息,则可以确定指定存储空间中的界面模板信息不是最新版本,此时可以执行步骤S705,否则,执行结束。
实际应用中,更新请求中还可以包括移动应用的第二版本信息以及移动终端的操作系统类型,服务器可以根据第二版本信息和操作系统类型确定后台存储的该移动终端中该移动应用对应的最新版本的界面模板信息。
S705,确定所述界面模板信息对应的更新界面模板信息。
其中,所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本。
具体的,若界面模板不是最新版本,但脚本是最新版本,则服务器可以获取最新版本的界面模板生成相应的更新界面模板信息;若界面模板是最新版本,但脚本不是最新版本,则服务器可以获取最新版本的脚本生成相应的更新界面模板信息;若界面模板不是最新版本,且脚本也不是最新版本,则服务器可以获取最新版本的界面模板和脚本生成相应的更新界面目标信息。
其中,最新版本的界面模板可以通过对后台相应界面模板的修改生成,修改方式可以是手动修改。为了提高后台最新版本的界面模板的生成效率,一个可选的实施方式是采用flutter_analysis库,通过对Dart文件进行语法分析生成本发明实施例中的界面模板。flutter_analysis库可以对dart文件做语法分析,可以找到dart声明的类、类的方法、方法的具体内容,并通过分析把原本通过dart描述的控件树的配置信息自动转换成Json数据格式的界面配置信息即界面模板。最新版本的脚本可以通过后台服务器上传并存储在后台服务器上。
S707,返回所述更新界面模板信息。
其中,所述更新界面模板信息用于移动终端对所述指定存储空间中的所述界面模板信息进行更新。
本发明实施例的业务界面的显示基于界面模板信息,该界面模板信息包括界面模板和与界面模板相关联的至少一个脚本,因此,当需要更新业务界面时只需动态更新界面模板信息即可,无需重新发布和安装APP,从而大大简化了移动应用中业务界面的动态更新,降低了动态更新成本,灵活性大大提高,不仅有利于实现Flutter业务界面的动态化,由于脚本和要执行的逻辑以及业务数据都是动态下发的,因此还能实现Flutter业务界面的逻辑的动态性。
本发明实施例还提供另一种移动应用的业务界面显示方法,该方法包括以下步骤:
移动终端响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求。
服务器接收移动应用中目标业务界面的业务请求;确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;返回所述目标业务数据和所述界面模板标识。
移动终端接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
移动终端根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;根据所述控件树模型显示所述目标业务界面。
请参阅图8,其所示为本发明实施例提供的一种移动应用的业务界面显示装置的结构示意图,该装置具有实现上述方法实施例中终端侧的移动应用的业务界面显示方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图8所示,该装置可以包括:
显示响应模块810,用于响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;
第一接收模块820,用于接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一确定模块830,用于确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
解析模块840,用于根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;
显示模块850,用于根据所述控件树模型显示所述目标业务界面。
作为一个可选的实施方式,该装置还可以包括:
第一发送模块,用于在所述移动应用启动时,向所述服务器发送更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息,所述第一版本信息用于所述服务器判断所述指定存储空间中的界面模板信息是否为最新版本,并在所述界面模板信息不是最新版本时返回所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
第三接收模块,用于接收所述服务器返回的所述更新界面模板信息;
更新模块,用于根据所述更新界面模板信息,对所述指定存储空间中的所述界面模板信息进行更新。
作为一个可选的实施方式,更新模块可以包括:
第一更新子模块,用于将所述指定存储空间中所述界面模板信息中的界面模板更新为所述最新版本的界面模板;和/或,
第二更新子模块,用于将所述指定存储空间中所述界面模板信息中的至少一个脚本更新为所述最新版本的脚本。
作为一个可选的实施方式,解析模块840可以包括:
第三确定模块,用于确定所述目标界面模板中每个节点对应的解析类;
第一解析子模块,用于基于所述每个节点对应的解析类,将所述目标界面模板解析为基础控件树模型;
第二解析子模块,用于根据所述目标业务数据和所述至少一个目标脚本解析所述基础控件树模型,得到所述目标业务界面所对应的控件树模型。
作为一个可选的实施方式,第二解析子模块可以包括:
第四确定模块,用于确定所述基础控件树模型中待解析参数的参数标识;
第五确定模块,用于确定所述目标业务数据中与所述参数标识相匹配的匹配业务数据,将所述匹配业务数据作为所述待解析参数的参数值;
第六确定模块,用于确定所述基础控件树模型中待解析方法的方法标识;
第七确定模块,用于确定所述至少一个目标脚本中与所述方法标识相匹配的匹配目标脚本;
调用关系建立模块,用于建立所述待解析方法与所述匹配目标脚本之间的调用关系;所述调用关系用于在执行所述待解析方法时,调用并运行所述匹配目标脚本,获取所述匹配目标脚本的运行结果;
第八确定模块,用于将包含所述参数值和所述调用关系的基础控件树模型作为所述控件树模型。
请参阅图9,其所示为本发明实施例提供的一种移动应用的业务界面显示装置的结构示意图,该装置具有实现上述方法实施例中服务器侧的移动应用的业务界面显示方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图9所示,该装置可以包括:
第二接收模块910,用于接收移动应用中目标业务界面的业务请求;
第二确定模块920,用于确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一返回模块930,用于返回所述目标业务数据和所述界面模板标识;所述界面模板标识用于确定指定存储空间中相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
作为一个可选的实施方式,该装置还可以包括:
第四接收模块,用于接收所述移动应用在启动时发送的更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息;
判断模块,用于根据所述第一版本信息,判断所述指定存储空间中的界面模板信息是否为最新版本;
第九确定模块,用于在判断模块判断的结果为否时,确定所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
第二返回模块,用于返回所述更新界面模板信息;所述更新界面模板信息用于对所述指定存储空间中的所述界面模板信息进行更新。
本发明实施例还提供一种移动应用的业务界面显示系统,该系统包括移动终端和服务器,移动终端中配置有移动应用,其中:
移动终端,用于响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求。
服务器,用于接收移动应用中目标业务界面的业务请求;确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;返回所述目标业务数据和所述界面模板标识。
移动终端,还用于接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;根据所述控件树模型显示所述目标业务界面。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的移动应用的业务界面显示装置及系统在进行移动应用中业务界面的显示时基于界面模板信息,该界面模板信息包括界面模板和与界面模板相关联的至少一个脚本,因此,当需要更新业务界面时只需动态更新界面模板信息即可,无需重新发布和安装APP,从而大大简化了移动应用中业务界面的动态更新,降低了动态更新成本,灵活性大大提高,不仅可以实现业务界面的动态化,由于脚本和要执行的逻辑以及业务数据都是动态下发的,因此还能实现逻辑的动态性。
此外,本发明实例中Flutter业务界面的显示方法可以在Android端和IOS端实现,也即基于上述实现的Flutter业务界面的动态更新可以在Android端和IOS端实现。并且控件树模型的生成不是基于JSCoreScript,避免了使用JSCoreScript开发存在的代码侵入性强、成本高以及Flutter与Native频繁交互、性能较差的缺陷。
本发明实施例提供了一种终端,该终端包括处理器和存储器,该存储器中存储有至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现如上述终端侧方法实施例所提供的移动应用的业务界面显示方法。
图10是本发明实施例提供的运行一种移动应用的业务界面显示方法的终端的硬件结构框图,具体来讲:
所述终端可以包括RF(Radio Frequency,射频)电路1010、包括有一个或一个以上计算机可读存储介质的存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、WiFi(wireless fidelity,无线保真)模块1070、包括有一个或者一个以上处理核心的处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1080处理;另外,将涉及上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述终端的使用所创建的数据等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1020还可以包括存储器控制器,以提供处理器1080和输入单元1030对存储器1020的访问。
输入单元1030可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1030可包括触敏表面1031以及其他输入设备1032。触敏表面1031,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1031上或在触敏表面1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1031。除了触敏表面1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及所述终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1040可包括显示面板1041,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1041。进一步的,触敏表面1031可覆盖显示面板1041,当触敏表面1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。其中,触敏表面1031与显示面板1041可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面1031与显示面板1041集成而实现输入和输出功能。
所述终端还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在所述终端移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与所述终端之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一终端,或者将音频数据输出至存储器1020以便进一步处理。音频电路1060还可能包括耳塞插孔,以提供外设耳机与所述终端的通信。
WiFi属于短距离无线传输技术,所述终端通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于所述终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是所述终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行所述终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器1080可包括一个或多个处理核心;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
所述终端还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1090还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,所述终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述终端侧方法实施例提供的移动应用的业务界面显示方法的指令。
本发明实施例提供了一种服务器,该服务器包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述服务器侧方法实施例所提供的移动应用的业务界面显示方法。
图11是本发明实施例提供的运行一种移动应用的业务界面显示方法的服务器的硬件结构框图,如图11所示,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1110(处理器1110可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1130,一个或一个以上存储应用程序1123或数据1122的存储介质1120(例如一个或一个以上海量存储设备)。其中,存储器1130和存储介质1120可以是短暂存储或持久存储。存储在存储介质1120的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1110可以设置为与存储介质1120通信,在服务器1100上执行存储介质1120中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1160,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1140,和/或,一个或一个以上操作系统1121,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口1140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1100的通信供应商提供的无线网络。在一个实例中,输入输出接口1140包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1140可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于终端或者服务器之中以保存用于实现一种移动应用的业务界面显示方法相关的至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的移动应用的业务界面显示方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种移动应用的业务界面显示方法,其特征在于,所述方法包括:
响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;
接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;
根据所述控件树模型显示所述目标业务界面。
2.根据权利要求1所述的移动应用的业务界面显示方法,其特征在于,所述方法还包括:
在所述移动应用启动时,向所述服务器发送更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息,所述第一版本信息用于所述服务器判断所述指定存储空间中的界面模板信息是否为最新版本,并在所述界面模板信息不是最新版本时返回所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
接收所述服务器返回的所述更新界面模板信息;
根据所述更新界面模板信息,对所述指定存储空间中的所述界面模板信息进行更新。
3.根据权利要求1所述的移动应用的业务界面显示方法,其特征在于,所述根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型包括:
确定所述目标界面模板中每个节点对应的解析类;
基于所述每个节点对应的解析类,将所述目标界面模板解析为基础控件树模型;
根据所述目标业务数据和所述至少一个目标脚本解析所述基础控件树模型,得到所述目标业务界面所对应的控件树模型。
4.根据权利要求3所述的移动应用的业务界面显示方法,其特征在于,所述根据所述目标业务数据和所述至少一个目标脚本解析所述基础控件树模型,得到所述目标业务界面所对应的控件树模型包括:
确定所述基础控件树模型中待解析参数的参数标识;
确定所述目标业务数据中与所述参数标识相匹配的匹配业务数据,将所述匹配业务数据作为所述待解析参数的参数值;
确定所述基础控件树模型中待解析方法的方法标识;
确定所述至少一个目标脚本中与所述方法标识相匹配的匹配目标脚本;
建立所述待解析方法与所述匹配目标脚本之间的调用关系;所述调用关系用于在执行所述待解析方法时,调用并运行所述匹配目标脚本,获取所述匹配目标脚本的运行结果;
将包含所述参数值和所述调用关系的基础控件树模型作为所述控件树模型。
5.一种移动应用的业务界面显示方法,其特征在于,所述方法包括:
接收移动应用中目标业务界面的业务请求;
确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
返回所述目标业务数据和所述界面模板标识;所述界面模板标识用于确定指定存储空间中相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
6.根据权利要求5所述的移动应用的业务界面显示方法,其特征在于,所述方法还包括:
接收所述移动应用在启动时发送的更新请求;所述更新请求包括所述指定存储空间中界面模板信息的第一版本信息;
根据所述第一版本信息,判断所述指定存储空间中的界面模板信息是否为最新版本;
在判断的结果为否时,确定所述界面模板信息对应的更新界面模板信息;所述更新界面模板信息包括所述界面模板信息对应的最新版本的界面模板和/或最新版本的脚本;
返回所述更新界面模板信息;所述更新界面模板信息用于对所述指定存储空间中的所述界面模板信息进行更新。
7.一种移动应用的业务界面显示装置,其特征在于,所述装置包括:
显示响应模块,用于响应于移动应用中目标业务界面的显示指令,向服务器发送业务请求;
第一接收模块,用于接收所述服务器根据所述业务请求返回的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一确定模块,用于确定指定存储空间中与所述界面模板标识相匹配的目标界面模板信息;所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;
解析模块,用于根据所述目标业务数据和所述至少一个目标脚本,解析所述目标界面模板得到所述目标业务界面所对应的控件树模型;
显示模块,用于根据所述控件树模型显示所述目标业务界面。
8.一种移动应用的业务界面显示装置,其特征在于,所述装置包括:
第二接收模块,用于接收移动应用中目标业务界面的业务请求;
第二确定模块,用于确定所述目标业务界面所对应的目标业务数据,以及所述目标业务数据所对应的界面模板标识;
第一返回模块,用于返回所述目标业务数据和所述界面模板标识;所述界面模板标识用于确定指定存储空间中相匹配的目标界面模板信息,所述目标界面模板信息包括目标界面模板以及与所述目标界面模板相关联的至少一个目标脚本;所述目标业务数据和所述至少一个目标脚本用于所述目标界面模板的解析以得到所述目标业务界面所对应的控件树模型;所述控件树模型用于所述目标业务界面的显示。
9.一种终端,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现如权利要求1~4中任一项所述的移动应用的业务界面显示方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如权利要求1~4任一项所述的移动应用的业务界面显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157558.6A CN113377469A (zh) | 2020-03-09 | 2020-03-09 | 移动应用的业务界面显示方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157558.6A CN113377469A (zh) | 2020-03-09 | 2020-03-09 | 移动应用的业务界面显示方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377469A true CN113377469A (zh) | 2021-09-10 |
Family
ID=77568452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010157558.6A Pending CN113377469A (zh) | 2020-03-09 | 2020-03-09 | 移动应用的业务界面显示方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377469A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416229A (zh) * | 2021-12-16 | 2022-04-29 | 青岛海尔科技有限公司 | 界面的显示方法、装置、终端设备和服务器 |
CN114489409A (zh) * | 2022-02-14 | 2022-05-13 | 北京高途云集教育科技有限公司 | 一种图片处理方法、装置、电子设备以及存储介质 |
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN115048177A (zh) * | 2022-08-15 | 2022-09-13 | 成都中科合迅科技有限公司 | 基于自定义容器完成业务场景的动态配置方法 |
-
2020
- 2020-03-09 CN CN202010157558.6A patent/CN113377469A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416229A (zh) * | 2021-12-16 | 2022-04-29 | 青岛海尔科技有限公司 | 界面的显示方法、装置、终端设备和服务器 |
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN114489409A (zh) * | 2022-02-14 | 2022-05-13 | 北京高途云集教育科技有限公司 | 一种图片处理方法、装置、电子设备以及存储介质 |
CN114489409B (zh) * | 2022-02-14 | 2024-03-26 | 北京高途云集教育科技有限公司 | 一种图片处理方法、装置、电子设备以及存储介质 |
CN115048177A (zh) * | 2022-08-15 | 2022-09-13 | 成都中科合迅科技有限公司 | 基于自定义容器完成业务场景的动态配置方法 |
CN115048177B (zh) * | 2022-08-15 | 2022-11-04 | 成都中科合迅科技有限公司 | 基于自定义容器完成业务场景的动态配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970790B (zh) | 一种应用程序创建的方法、相关设备及系统 | |
CN106598996B (zh) | 多媒体海报生成方法及装置 | |
CN106775637B (zh) | 一种应用程序的页面显示方法和装置 | |
US10186244B2 (en) | Sound effect processing method and device, plug-in unit manager and sound effect plug-in unit | |
CN113377469A (zh) | 移动应用的业务界面显示方法、装置、终端及存储介质 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN111178012A (zh) | 一种表单渲染方法、装置、设备及存储介质 | |
CN110399583B (zh) | 页面显示方法、装置、电子设备以及存储介质 | |
CN107204964B (zh) | 一种权限管理的方法、装置和系统 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN108549519B (zh) | 分屏处理方法、装置、存储介质和电子设备 | |
CN112882772B (zh) | 移动终端应用界面的配置方法、移动终端及存储介质 | |
CN110795666A (zh) | 一种网页生成方法、装置、终端及存储介质 | |
CN107666406B (zh) | 智能卡片显示方法及装置 | |
CN111078556B (zh) | 应用测试方法及装置 | |
CN111124412B (zh) | 一种游戏页面绘制方法、装置、设备及存储介质 | |
CN105373534B (zh) | 列表展示方法、装置及列表展示端 | |
EP2869604B1 (en) | Method, apparatus and device for processing a mobile terminal resource | |
CN108182090B (zh) | 基于blink内核的Flash插件加载方法及装置 | |
CN106095423B (zh) | 提供浏览服务的方法、终端及服务器 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN111359210B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN105320532B (zh) | 显示交互界面的方法、装置及终端 | |
CN105528220B (zh) | 加载动态共享对象的方法和装置 | |
CN110196662B (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 |