CN117667083A - 一种页面的生成方法、系统及终端设备 - Google Patents
一种页面的生成方法、系统及终端设备 Download PDFInfo
- Publication number
- CN117667083A CN117667083A CN202211029212.3A CN202211029212A CN117667083A CN 117667083 A CN117667083 A CN 117667083A CN 202211029212 A CN202211029212 A CN 202211029212A CN 117667083 A CN117667083 A CN 117667083A
- Authority
- CN
- China
- Prior art keywords
- control
- routing
- page
- target
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000009877 rendering Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 37
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种页面的生成方法、系统及终端设备,所述方法包括:响应用户打开页面的操作,产生页面生成请求;接收对应所述页面生成请求的UI控件列表,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;渲染所述目标UI控件以生成向用户展示的页面;通过路由中心集中管理所有UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,生成页面时可以直接由路由中心根据目标UI控件对应的路由地址实例化目标UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种页面的生成方法、系统及终端设备。
背景技术
在应用程序的设计和开发过程中,用户界面(User Interface,即UI界面)可以基于卡片进行设计,卡片为信息的集合体,一个卡片对应一个UI控件,UI控件即为开发人员可用来设计UI界面的基本组件。
但是,在目前的APP页面中,卡片被模块化拆分,各个模块之间需要通过相互依赖才能进行相互通信,导致卡片内部的UI控件的独立性较差,不便于管理,并导致UI界面设计的灵活性较差。
发明内容
本发明实施例的目的在于,提供一种页面的生成方法、系统及终端设备,通过路由中心集中管理所有UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,生成页面时可以直接由路由中心根据目标UI控件对应的路由地址实例化目标UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
为了实现上述目的,本发明实施例提供了一种页面的生成方法,包括:
响应用户打开页面的操作,产生页面生成请求;
接收对应所述页面生成请求的UI控件列表,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
渲染所述目标UI控件以生成向用户展示的页面。
进一步地,所述方法还包括:
预先根据为每一个UI控件配置的路由地址注解生成代码注册到所述路由中心,其中,注册步骤具体包括:
在编码过程中,编写每一个UI控件的UI控件代码,为每一个UI控件配置路由地址注解,并编译APK;
在编译过程中,解析工程中的每一个class文件的类信息,判断是否配置了路由地址注解,将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中,解析所述路由映射表并生成代码注册到所述路由中心。
进一步地,在所述将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中之后,所述方法还包括:
收集编译过程中的运行信息并输出编译日志;
根据所述编译日志进行信息定位。
进一步地,在所述解析所述路由映射表并生成代码注册到所述路由中心之后,所述方法还包括:
根据所述路由映射表的信息输出映射表日志;
根据所述映射表日志对所述路由映射表进行预览和维护。
进一步地,所述路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件,具体包括:
所述路由中心判断所述路由地址是否已注册,若否,则进行日志记录,若是,则获取所述路由地址对应的UI控件代码,根据所述UI控件代码实例化所述目标UI控件。
进一步地,在所述判断所述路由地址是否已注册之前,所述方法还包括:
判断是否拦截所述页面生成请求;
若否,则继续判断所述路由地址是否已注册;
若是,则中断当前的实例化过程,或,将所述路由地址更新为新路由地址,以根据所述新路由地址实例化对应的UI控件。
进一步地,所述方法还包括:
收集实例化过程中的异常情况并输出业务日志;
根据所述业务日志对异常情况进行异常处理;
其中,所述异常情况包括路由地址未注册,所述异常处理包括实例化默认UI控件或中断当前的实例化过程。
进一步地,所述UI控件列表由云端响应所述页面生成请求下发到本地端,且所述UI控件列表以路由卡片的形式下发到本地端。
为了实现上述目的,本发明实施例还提供了一种页面的生成系统,用于实现上述任一项所述的页面的生成方法,所述系统包括本地端、本地端的路由中心和云端;其中,
本地端,用于响应用户打开页面的操作,产生页面生成请求,并将所述页面生成请求发送至云端;
云端,用于响应所述页面生成请求下发UI控件列表到本地端,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
本地端,还用于接收对应所述页面生成请求的所述UI控件列表,并将所述UI控件列表中的所述目标UI控件对应的路由地址发送至路由中心;
路由中心,用于根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
本地端,还用于渲染所述目标UI控件以生成向用户展示的页面。
本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的页面的生成方法。
与现有技术相比,本发明实施例提供了一种页面的生成方法、系统及终端设备,响应用户打开页面的操作,产生页面生成请求;接收对应所述页面生成请求的UI控件列表,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;渲染所述目标UI控件以生成向用户展示的页面;通过路由中心集中管理所有UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,生成页面时可以直接由路由中心根据目标UI控件对应的路由地址实例化目标UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
附图说明
图1是本发明提供的一种页面的生成方法的一个优选实施例的流程图;
图2是本发明实施例提供的一种页面的生成方法的一个应用示例流程图;
图3是本发明提供的一种终端设备的一个优选实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种页面的生成方法,参见图1所示,是本发明提供的一种页面的生成方法的一个优选实施例的流程图,所述方法包括步骤S11至步骤S14:
步骤S11、响应用户打开页面的操作,产生页面生成请求;
步骤S12、接收对应所述页面生成请求的UI控件列表,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
步骤S13、路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
步骤S14、渲染所述目标UI控件以生成向用户展示的页面。
具体的,用户在本地端进行打开页面的操作,本地端可以是基于Android的客户端,例如,用户打开手机中的APP的某个页面;该App响应用户打开页面的操作,相应产生页面生成请求,并将该页面生成请求发送至云端,以请求云端下发与该页面生成请求相对应的UI控件列表,其中,UI控件列表中主要包括待生成的页面在实际展示时所需要的所有目标UI控件以及每一个目标UI控件所对应的控件信息,控件信息主要包括与目标控件相对应的路由地址、需要填充的数据和其他字段等信息;该App接收云端下发的与该页面生成请求相对应的UI控件列表,并将接收到的UI控件列表中的所有目标UI控件所对应的路由地址发送至该App的路由中心,针对UI控件列表中的每一个目标UI控件,均可以通过路由中心进行实例化处理;对于任意一个目标UI控件,路由中心可以根据目标UI控件所对应的路由地址实例化对应的目标UI控件;在所有的目标UI控件均实例化完成之后,该App加载所有的目标UI控件,利用页面渲染控件对所有的目标UI控件进行渲染处理,以将所有的目标UI控件动态渲染到待生成的页面中,相应生成向用户展示的页面。
需要说明的是,路由中心实例化目标UI控件的处理过程如下:路由中心中预先维护了一张路由映射表,路由映射表中主要包括若干个UI控件所对应的路由地址、名称和控件路径,路由中心在接收到目标UI控件所对应的路由地址之后,根据目标UI控件所对应的路由地址在路由映射表找出想对应的控件路径(即控件的实际路径),并通过Java创建出UI控件对象,从而完成目标UI控件的实例化处理。
本发明实施例所提供的一种页面的生成方法,通过响应用户打开页面的操作,产生页面生成请求,并接收对应页面生成请求的UI控件列表,UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址,使得路由中心可以根据目标UI控件对应的路由地址实例化目标UI控件,最后渲染目标UI控件,相应生成向用户展示的页面;通过路由中心集中管理所有UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,生成页面时可以直接由路由中心根据目标UI控件对应的路由地址实例化目标UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
作为上述方案的改进,所述UI控件列表由云端响应所述页面生成请求下发到本地端,且所述UI控件列表以路由卡片的形式下发到本地端。
具体的,结合上述实施例,本地端会将生成的页面生成请求发送至云端,以请求云端下发与该页面生成请求相对应的UI控件列表,则,云端在接收到本地端发送的该页面生成请求之后,响应该页面生成请求并下发对应的UI控件列表到本地端,并且UI控件列表是以路由卡片的形式由云端下发到本地端。
需要说明的是,UI控件列表指的是待生成的页面在实际展示时所需要的所有目标UI控件的一个集合,也是需要展示的路由卡片的一个集合,路由卡片对应的就是一个UI控件。
在另一个优选实施例中,所述方法还包括:
预先根据为每一个UI控件配置的路由地址注解生成代码注册到所述路由中心,其中,注册步骤具体包括:
在编码过程中,编写每一个UI控件的UI控件代码,为每一个UI控件配置路由地址注解,并编译APK;
在编译过程中,解析工程中的每一个class文件的类信息,判断是否配置了路由地址注解,将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中,解析所述路由映射表并生成代码注册到所述路由中心。
具体的,结合上述实施例,在实际生成页面之前,针对已有的所有的UI控件,可以根据为每一个UI控件配置的路由地址注解,通过编译自动生成代码注册到路由中心,以将所有的UI控件自动化注册到路由中心,由路由中心对所有的UI控件进行集中管理;将UI控件注册到路由中心的注册步骤具体如下:
将UI控件注册到路由中心的注册过程主要可以分成编码和编译两个阶段,其中,在编码过程中,需要编写每一个UI控件对应的UI控件代码,为每一个UI控件配置路由地址注解(即为每一个UI控件指定唯一的路由地址),以配置每一个UI控件的注册入口,并编译APK(Android application package,Android应用程序包,也即Android安装包);在工程编译过程中,需要遍历解析工程中的所有的class文件(Java会在编译期会将Java源文件编译成.class的二进制文件,class文件即指该.class的二进制文件),针对每一个class文件,均解析class文件中的类信息,以判断该class文件是否配置了路由地址注解(即判断是否配置WidgetPath注解),若是,则判定匹配到对应的UI控件,若否,则继续解析下一个class文件,直至解析完所有的class文件时为止,相应的,能够匹配出所有的class文件中的配置了路由地址注解的所有UI控件,则将配置了路由地址注解的所有UI控件所对应的路由地址和控件信息对应插入到路由映射表中,解析路由映射表并生成代码注册到所述路由中心。
示例性的,路由映射表所包含的信息如表1所示,其中,表1仅示出了路由映射表中的若干个UI控件所对应的路由地址、名称和控件路径。
表1路由映射表
路由地址 | 名称 | 控件路径 |
C05 | 车辆地图 | …/…/card/VehicleMapCard |
C04 | 用车计划 | …/…/card/VehiclePlanCard |
C11 | 车辆快捷命令 | …/…/card/VehicleQuickCmdCard |
C01 | 车辆状态 | …/…/card/VehicleStateCard |
C17 | 车辆任务 | …/…/card/VehicleTaskCard |
C03 | 出行记录 | …/…/card/VehicleTravelCard |
B12 | 单个活动卡片 | …/…/activity/ActivitySingleCard |
B11 | 新版活动组 | …/…/activity/ActivitySingleLineHorizontalCard |
D05 | 信息流活动卡片 | …/…/activity/InfoFlowActivityCard |
B02 | 广告组_大轮播 | …/…/ads/AdsGroupBannerLargeCard |
B01 | 广告组_小轮播 | …/…/ads/AdsGroupBannerSmallCard |
B03 | 广告组_单图 | …/…/ads/AdsGroupFixed1ColCard |
B04 | 广告组_多图 | …/…/ads/AdsGroupFixed2ColCard |
B05 | 广告组_多图 | …/…/ads/AdsGroupFixed3ColCard |
B06 | 广告组_多图 | …/…/ads/AdsGroupFixed4ColCard |
D01 | 横向功能项 | …/…/menu/GirdFuncMenuCard |
D02 | 竖向功能项 | …/…/menu/VerticalMenuCard |
需要说明的是,路由地址注解用于表示对应的UI控件的注册入口,注册入口具体是指对应的UI控件的唯一路径,UI控件的调用方使用该唯一路径,即可向路由中心请求实例化对应的UI控件,在实际为每一个UI控件配置路由地址注解时,配置方式可以为:在控件类添加@WidgetPath(path=“路径”,name=“名称”),从而为每一个UI控件指定唯一的路由地址。
本发明实施例所提供的一种页面的生成方法,通过为UI控件配置路由地址注解,将所有的UI控件注册到路由中心,能够方便路由中心集中管理所有的UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,在生成页面时,可以先获取页面展示所需的UI控件列表,再由路由中心根据UI控件列表中的每一个目标UI控件所对应的路由地址实例化对应的目标UI控件,调用方只需使用路由地址即可向路由中心请求实例化各个业务组件中的UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
作为上述方案的改进,在所述将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中之后,所述方法还包括:
收集编译过程中的运行信息并输出编译日志;
根据所述编译日志进行信息定位。
具体的,结合上述实施例,在将配置了路由地址注解的UI控件所对应的路由地址和控件信息对应插入到路由映射表中之后,可以进一步收集编译过程中的运行信息,并输出相应的编译日志,以便研发人员根据该编译日志进行信息定位。
作为上述方案的改进,在所述解析所述路由映射表并生成代码注册到所述路由中心之后,所述方法还包括:
根据所述路由映射表的信息输出映射表日志;
根据所述映射表日志对所述路由映射表进行预览和维护。
具体的,结合上述实施例,在解析路由映射表并生成代码注册到所述路由中心之后,可以进一步根据路由映射表中的相关信息输出映射表日志,以便研发人员根据该映射表日志对路由映射表进行预览和维护。
参见图2所示,是本发明实施例提供的一种页面的生成方法的一个应用示例流程图,结合上述实施例和图2所示,下面对UI控件注册到路由中心的自动化注册过程进行具体说明:
在编码期:
(1)为每一个单独的UI控件添加@WidgetPath(path=路由地址)注解;
(2)编译APK;
在编译期:
(3)解析工程中的单个class文件的类信息;
(4)根据class文件中的类信息判断是否匹配到UI控件,若是,则跳转到(5),若否,则跳转到(6);
(5)将UI控件的路由地址和控件信息插入到路由映射表中,并输出编译日志;
(6)判断工程中是否还有class文件未被解析,若是,则跳转到(3),继续解析工程中下一个未被解析的class文件,若否,则跳转到(7);
(7)根据路由映射表动态生成代码注入到路由中心,并输出映射表日志;
(8)输出APK。
在又一个优选实施例中,所述路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件,具体包括:
所述路由中心判断所述路由地址是否已注册,若否,则进行日志记录,若是,则获取所述路由地址对应的UI控件代码,根据所述UI控件代码实例化所述目标UI控件。
具体的,结合上述实施例,路由中心在实例化每一个目标UI控件时,需要先判断目标UI控件所对应的路由地址在路由中心中是否已经完成注册,若判定没有注册,则进行日志记录;若判定已注册,则获取该路由地址所对应的UI控件代码,通过该路由地址所对应的UI控件代码实例化对应的目标UI控件。
作为上述方案的改进,在所述判断所述路由地址是否已注册之前,所述方法还包括:
判断是否拦截所述页面生成请求;
若否,则继续判断所述路由地址是否已注册;
若是,则中断当前的实例化过程,或,将所述路由地址更新为新路由地址,以根据所述新路由地址实例化对应的UI控件。
具体的,结合上述实施例,在判断目标UI控件所对应的路由地址在路由中心中是否已经完成注册之前,可以进一步先判断是否需要拦截当前的页面生成请求,若判定不需要拦截,则再继续判断目标UI控件所对应的路由地址在路由中心中是否已经完成注册,并根据判断结果进行相应处理(后续的处理过程如上述实施例所述,这里不再赘述);若判定需要拦截,则可以中断当前的实例化处理过程,或者,将当前的路由地址更新(例如修改、替换等)为新路由地址,以根据更新后的新路由地址实例化新路由地址所对应的UI控件(具体的实例化过程如上述实施例所述,这里不再赘述)。
需要说明的是,调用方可以根据业务需求自定义拦截器对页面生成请求进行中断操作,例如,车辆在OTA、维保状态下,部分功能需要禁止使用或者隐藏显示页面,拦截器针对这些情况可以做出相应操作;调用方还可以针对不同的业务场景将UI控件所对应的路由地址修改、替换为其他路由地址,以便后续处理流程能够继续进行。
示例性的,用户在本地端打开页面A时,本地端会生成相应的页面A生成请求,并根据页面A生成请求向云端拉取页面A展示所需的UI控件列表,再将该UI控件列表中的目标UI控件所对应的路由地址发送到路由中心;以目标UI控件B所对应的路由地址B为例,路由中心在接收到路由地址B之后,先判断是否拦截页面A生成请求,若不拦截,则继续判断路由地址B是否已经注册,若已经注册,则实例化对应的目标UI控件B。
作为上述方案的改进,所述方法还包括:
收集实例化过程中的异常情况并输出业务日志;
根据所述业务日志对异常情况进行异常处理;
其中,所述异常情况包括路由地址未注册,所述异常处理包括实例化默认UI控件或中断当前的实例化过程。
具体的,结合上述实施例,在UI控件的实例化过程中,可以收集实例化过程中出现的异常情况并输出相应的业务日志,以便研发人员根据该业务日志对异常情况进行异常处理。
需要说明的是,通过业务日志可以集中记录异常情况,以对异常情况进行统一处理,异常情况主要包括路由地址未注册、实例化过程中出现的异常和数据填充时出现的异常等情况,其中,路由地址未注册也属于一种异常情况,针对这种异常情况,可以采取的异常处理方式包括:提供默认展示的控件的路由地址,以根据该路由地址实例化默认UI控件,或者,直接中断当前的UI控件实例化处理过程。
本发明实施例还提供了一种页面的生成系统,用于实现上述任一实施例所述的页面的生成方法,所述系统包括本地端、本地端的路由中心和云端;其中,
本地端,用于响应用户打开页面的操作,产生页面生成请求,并将所述页面生成请求发送至云端;
云端,用于响应所述页面生成请求下发UI控件列表到本地端,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
本地端,还用于接收对应所述页面生成请求的所述UI控件列表,并将所述UI控件列表中的所述目标UI控件对应的路由地址发送至路由中心;
路由中心,用于根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
本地端,还用于渲染所述目标UI控件以生成向用户展示的页面。
优选地,所述本地端,还用于预先根据为每一个UI控件配置的路由地址注解生成代码注册到所述路由中心,其中,注册步骤具体包括:
在编码过程中,编写每一个UI控件的UI控件代码,为每一个UI控件配置路由地址注解,并编译APK;
在编译过程中,解析工程中的每一个class文件的类信息,判断是否配置了路由地址注解,将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中,解析所述路由映射表并生成代码注册到所述路由中心。
优选地,所述本地端在将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中之后,还用于:
收集编译过程中的运行信息并输出编译日志;
根据所述编译日志进行信息定位。
优选地,所述本地端在解析所述路由映射表并生成代码注册到所述路由中心之后,还用于:
根据所述路由映射表的信息输出映射表日志;
根据所述映射表日志对所述路由映射表进行预览和维护。
优选地,所述路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件,具体包括:
所述路由中心判断所述路由地址是否已注册,若否,则进行日志记录,若是,则获取所述路由地址对应的UI控件代码,根据所述UI控件代码实例化所述目标UI控件。
优选地,所述路由中心在判断所述路由地址是否已注册之前,还用于:
判断是否拦截所述页面生成请求;
若否,则继续判断所述路由地址是否已注册;
若是,则中断当前的实例化过程,或,将所述路由地址更新为新路由地址,以根据所述新路由地址实例化对应的UI控件。
优选地,所述路由中心,还用于:
收集实例化过程中的异常情况并输出业务日志;
根据所述业务日志对异常情况进行异常处理;
其中,所述异常情况包括路由地址未注册,所述异常处理包括实例化默认UI控件或中断当前的实例化过程。
需要说明的是,本发明实施例所提供的一种页面的生成系统,能够实现上述任一实施例所述的页面的生成方法的所有流程,系统所采用的技术方案以及实现的技术效果分别与上述实施例所述的页面的生成方法所采用的技术方案以及实现的技术效果对应相同,这里不再赘述。
本发明实施例还提供了一种终端设备,参见图3所示,是本发明提供的一种终端设备的一个优选实施例的结构框图,所述终端设备包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10在执行所述计算机程序时实现上述任一实施例所述的页面的生成方法。
优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、······),所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
所述处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者所述处理器10也可以是任何常规的处理器,所述处理器10是所述终端设备的控制中心,利用各种接口和线路连接所述终端设备的各个部分。
所述存储器20主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储器20可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或所述存储器20也可以是其他易失性固态存储器件。
需要说明的是,上述终端设备可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图3结构框图仅仅是上述终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
综上,本发明实施例所提供的一种页面的生成方法、系统及终端设备,通过响应用户打开页面的操作,产生页面生成请求,并接收对应页面生成请求的UI控件列表,UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址,使得路由中心可以根据目标UI控件对应的路由地址实例化目标UI控件,最后渲染目标UI控件,相应生成向用户展示的页面;通过为UI控件配置路由地址注解,将所有的UI控件注册到路由中心,能够方便路由中心集中管理所有的UI控件,并且各个UI控件之间不再需要通过相互依赖即可完成通信,在生成页面时,可以先获取页面展示所需的UI控件列表,再由路由中心根据UI控件列表中的每一个目标UI控件所对应的路由地址实例化对应的目标UI控件,调用方只需使用路由地址即可向路由中心请求实例化各个业务组件中的UI控件,从而提高了UI控件的独立性,并提高了页面设计的灵活性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种页面的生成方法,其特征在于,包括:
响应用户打开页面的操作,产生页面生成请求;
接收对应所述页面生成请求的UI控件列表,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
渲染所述目标UI控件以生成向用户展示的页面。
2.如权利要求1所述的页面的生成方法,其特征在于,所述方法还包括:
预先根据为每一个UI控件配置的路由地址注解生成代码注册到所述路由中心,其中,注册步骤具体包括:
在编码过程中,编写每一个UI控件的UI控件代码,为每一个UI控件配置路由地址注解,并编译APK;
在编译过程中,解析工程中的每一个class文件的类信息,判断是否配置了路由地址注解,将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中,解析所述路由映射表并生成代码注册到所述路由中心。
3.如权利要求2所述的页面的生成方法,其特征在于,在所述将配置了路由地址注解的所有UI控件对应的路由地址和控件信息插入到路由映射表中之后,所述方法还包括:
收集编译过程中的运行信息并输出编译日志;
根据所述编译日志进行信息定位。
4.如权利要求2或3所述的页面的生成方法,其特征在于,在所述解析所述路由映射表并生成代码注册到所述路由中心之后,所述方法还包括:
根据所述路由映射表的信息输出映射表日志;
根据所述映射表日志对所述路由映射表进行预览和维护。
5.如权利要求1所述的页面的生成方法,其特征在于,所述路由中心根据所述目标UI控件对应的路由地址,实例化所述目标UI控件,具体包括:
所述路由中心判断所述路由地址是否已注册,若否,则进行日志记录,若是,则获取所述路由地址对应的UI控件代码,根据所述UI控件代码实例化所述目标UI控件。
6.如权利要求5所述的页面的生成方法,其特征在于,在所述判断所述路由地址是否已注册之前,所述方法还包括:
判断是否拦截所述页面生成请求;
若否,则继续判断所述路由地址是否已注册;
若是,则中断当前的实例化过程,或,将所述路由地址更新为新路由地址,以根据所述新路由地址实例化对应的UI控件。
7.如权利要求5或6所述的页面的生成方法,其特征在于,所述方法还包括:
收集实例化过程中的异常情况并输出业务日志;
根据所述业务日志对异常情况进行异常处理;
其中,所述异常情况包括路由地址未注册,所述异常处理包括实例化默认UI控件或中断当前的实例化过程。
8.如权利要求1所述的页面的生成方法,其特征在于,所述UI控件列表由云端响应所述页面生成请求下发到本地端,且所述UI控件列表以路由卡片的形式下发到本地端。
9.一种页面的生成系统,其特征在于,用于实现如权利要求1~8中任一项所述的页面的生成方法,所述系统包括本地端、本地端的路由中心和云端;其中,
本地端,用于响应用户打开页面的操作,产生页面生成请求,并将所述页面生成请求发送至云端;
云端,用于响应所述页面生成请求下发UI控件列表到本地端,所述UI控件列表中包含页面展示所需的目标UI控件及其对应的路由地址;
本地端,还用于接收对应所述页面生成请求的所述UI控件列表,并将所述UI控件列表中的所述目标UI控件对应的路由地址发送至路由中心;
路由中心,用于根据所述目标UI控件对应的路由地址,实例化所述目标UI控件;
本地端,还用于渲染所述目标UI控件以生成向用户展示的页面。
10.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1~8中任一项所述的页面的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029212.3A CN117667083A (zh) | 2022-08-25 | 2022-08-25 | 一种页面的生成方法、系统及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029212.3A CN117667083A (zh) | 2022-08-25 | 2022-08-25 | 一种页面的生成方法、系统及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667083A true CN117667083A (zh) | 2024-03-08 |
Family
ID=90077449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211029212.3A Pending CN117667083A (zh) | 2022-08-25 | 2022-08-25 | 一种页面的生成方法、系统及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667083A (zh) |
-
2022
- 2022-08-25 CN CN202211029212.3A patent/CN117667083A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920370B (zh) | 兼容性问题检测方法、装置及设备 | |
CN110956269B (zh) | 数据模型的生成方法、装置、设备以及计算机存储介质 | |
KR100871778B1 (ko) | 중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN109618176B (zh) | 一种直播业务的处理方法、设备和存储介质 | |
CN111858727B (zh) | 一种基于模板配置的多数据源数据导出系统及方法 | |
US11966795B2 (en) | Method and device for loading minus-one screen, terminal, and computer readable storage medium | |
CN106371874A (zh) | 一种插件数据加载方法及设备 | |
CN112506492B (zh) | 一种支持动态场景配置的可视化埋点方法 | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
CN112181542A (zh) | 功能调用方法、装置、电子设备及存储介质 | |
CN110990350B (zh) | 日志的解析方法及装置 | |
CN111338716A (zh) | 基于规则引擎的数据处理方法、装置及终端设备 | |
CN114386853A (zh) | 基于通用审核模型的数据审核处理方法、装置及设备 | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN112346758B (zh) | 一种数字基建业务更新平台、更新方法及电子设备 | |
CN111046393B (zh) | 漏洞信息上传方法、装置、终端设备及存储介质 | |
CN115269040B (zh) | 一种租户业务应用的拓展方法、装置及系统 | |
CN117667083A (zh) | 一种页面的生成方法、系统及终端设备 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN112380411B (zh) | 敏感词处理方法、装置、电子设备、系统及存储介质 | |
CN109871277B (zh) | 进程间多请求管理方法、装置、终端设备及可读存储介质 | |
CN114527993A (zh) | 应用程序部署方法、装置、设备及介质 | |
CN114115933A (zh) | 软件升级的方法、系统、装置、电子设备及介质 | |
CN109634636B (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 |