本发明涉及渲染
技术领域:
:,特别是涉及一种页面渲染方法和一种页面渲染装置。
背景技术:
::现有的app页面在开发时,一般都是基于操作系统提供的原生ui框架来开发app页面。在这种情况下,如果开发人员想要开发一个可以在ios系统与安卓系统上运行的app页面时,便需要使用ios系统与安卓系统的ui框架,分别用objective-c与java语言,编写两份代码。此外编写完成的代码需要经过编译、打包,生成app安装包,并发布到应用商店;用户才可以通过在应用商店上下载并安装该安装包,进而渲染生成app的使用页面。然而,这种传统的、使用手机原生ui框架开发app页面的方式,需要根据不同的操作系统编写不同的代码,并将代码编译后才可以被用户下载并安装;终端再对代码进行渲染才能生成app的页面,开发效率低,发布周期长,无法动态部署。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种页面渲染方法和相应的一种页面渲染装置。为了解决上述问题,本发明实施例公开了一种页面渲染方法,应用于移动终端,所述方法包括:从所述服务器中提取页面描述文件;从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;按特定数据结构保存所述页面对象;按所述特定数据结构渲染所述页面对象。可选地,所述移动终端从所述服务器中提取所述页面描述文件,包括:当打开一个页面时,所述移动终端获取与所述页面描述文件对应的统一资源定位符;从所述服务器中提取与所述统一资源定位符对应的页面描述文件。可选地,所述页面描述文件包括页面布局文件;所述属性标签包括布局项标签;所述页面对象包括布局项对象;所述从所述页面描述文件中提取属性标签,并按照当前操作系统将所述属性标签映射为对应的页面对象的步骤,包括:从所述页面布局文件中提取所述布局项标签;解析所述布局项标签,并按照当前操作系统将所述布局项标签映射为对应的布局项对象。可选地,所述属性标签还包括页脚标签;所述页面对象还包括页脚对象;所述从所述页面描述文件中提取属性标签,并按照当前操作系统将所述属性标签映射为对应的页面对象的步骤,还包括:从所述页面布局文件中提取页脚标签;解析所述页脚标签,并按照当前操作系统将所述页脚标签映射为对应的页脚对象。可选地,所述页面描述文件还包括页面样式文件;所述属性标签还包括页面样式标签;所述页面对象还包括页面样式对象,所述从所述页面描述文件中提取属性标签,并按照当前操作系统将所述属性标签映射为对应的页面对象的步骤,还包括:从所述页面样式文件中提取页面样式标签;解析所述页面样式标签,并按照当前操作系统将所述页面样式标签映射为对应的页面样式对象。所述特定数据结构包括树形数据结构,所述页面对象包括布局项对象,所述按特定数据结构保存所述页面对象,包括:按所述树形数据结构保存所述布局项对象;或者,所述特定数据结构包括字典数据结构,所述页面对象包括页面样式对象,所述按特定数据结构保存所述页面对象,包括:按所述字典数据结构保存所述页面样式对象。可选地,所述特定数据结构包括布局树形数据结构;所述按特定数据结构保存所述页面对象,包括:按布局树形数据结构保存所述布局项对象。可选地,所述特定数据结构还包括页脚树形数据结构;所述按特定数据结构保存所述页面对象,还包括:按页脚树形数据结构保存所述页脚对象。可选地,所述特定数据结构还包括字典数据结构;所述按特定数据结构保存所述页面对象,还包括:按字典数据结构保存所述页面样式对象。可选地,所述布局树形数据结构具有布局节点,每个布局节点包括布局子节点;所述布局项对象具有对应的基本组件对象;所述按布局树形数据结构保存所述布局项对象,包括:将每个布局项对象,分别保存为所述布局树形数据结构中的一个布局节点;将每个布局项对象对应的基本组件对象,分别保存为所述布局项对象对应的布局节点下的一个布局子节点。可选地,所述页脚树形数据结构具有页脚节点,每个页脚节点包括页脚子节点;所述页脚对象具有对应的基本组件对象;所述按页脚树形数据结构保存所述页脚对象,包括:将每个页脚对象,分别保存为所述页脚树形数据结构中的一个页脚节点;将每个页脚对象对应的基本组件对象,分别保存为所述页脚对象对应的页脚节点下的一个页脚子节点。可选地,所述页面样式对象具有样式名称,所述按字典数据结构保存所述页面样式对象,包括:获取所述页面样式对象与对应的样式之间的关联关系;将所述关联关系保存在字典数据结构中。可选地,所述按所述特定数据结构渲染所述页面对象,包括:当所述特定数据结构为树形数据结构时,循环获取所述树形数据结构顶层的所述页面对象;确定所述页面对象的布局形式;按照所述布局形式渲染所述页面对象。可选地,当所述当前操作系统为ios系统时,所述页面为表格数据展示视图uitableview,所述表格数据展示视图uitableview具有多个内容单元cell;所述按照所述布局形式渲染所述页面对象,包括:按照所述布局形式,将每一个所述页面对象分别渲染为所述表格数据展示视图uitableview中的一个内容单元cell。可选地,当所述当前操作系统为安卓系统时,所述页面为列表视图listview;所述列表视图listview具有多个列表条目item;所述按照所述布局形式渲染所述页面对象,包括:按照所述布局形式,将每一个所述页面对象分别渲染为所述列表视图listview中的一个列表条目item。可选地,所述按照所述布局形式渲染所述页面对象,包括:当所述布局形式为流式布局时,将所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。可选地,所述按照所述布局形式渲染所述页面对象,包括:当所述布局形式为轮播布局时,在所述页面中绘制轮播组件;确定多个所述页面对象的子布局形式;所述子布局形式包括流式布局或格栅布局;在所述轮播组件中,将多个所述页面对象按照所述流式布局,或,所述格栅布局渲染至所述页面中。可选地,所述按照所述布局形式渲染所述页面对象,包括:当所述布局形式为格栅布局时,计算每个所述页面对象的列宽;将每个所述页面对象以对应的列宽渲染至所述页面中,并将每个所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。可选地,所述按所述特定数据结构渲染所述页面对象,包括:当所述特定数据结构为字典数据结构时,在所述字典数据结构中,查找所述页面样式对象对应的样式;采用所述样式渲染所述页面样式对象。本发明实施例还公开了一种页面渲染装置,应用于移动终端,所述装置包括:页面描述文件提取模块,用于从所述服务器中提取页面描述文件;页面对象映射模块,用于从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;页面对象保存模块,用于按特定数据结构保存所述页面对象;页面对象渲染模块,用于按所述特定数据结构渲染所述页面对象。可选地,所述页面描述文件提取模块,包括:统一资源定位符获取子模块,用于当打开一个页面时,所述移动终端获取与所述页面描述文件对应的统一资源定位符;页面描述文件提取子模块,用于从所述服务器中提取与所述统一资源定位符对应的页面描述文件。可选地,所述页面描述文件包括页面布局文件;所述属性标签包括布局项标签;所述页面对象包括布局项对象;所述页面对象映射模块,包括:布局项标签提取子模块,用于从所述页面布局文件中提取所述布局项标签;布局项对象映射子模块,用于解析所述布局项标签,并按照当前操作系统将所述布局项标签映射为对应的布局项对象。可选地,所述属性标签还包括页脚标签;所述页面对象还包括页脚对象;所述页面对象映射模块,还包括:页脚标签提取子模块,用于从所述页面布局文件中提取页脚标签;页脚对象映射子模块,用于解析所述页脚标签,并按照当前操作系统将所述页脚标签映射为对应的页脚对象。可选地,所述页面描述文件还包括页面样式文件;所述属性标签还包括页面样式标签;所述页面对象还包括页面样式对象,所述页面对象映射模块,包括:页面样式标签提取子模块,用于从所述页面样式文件中提取页面样式标签;页面样式对象映射子模块,用于解析所述页面样式标签,并按照当前操作系统将所述页面样式标签映射为对应的页面样式对象。可选地,所述特定数据结构包括布局树形数据结构;所述页面对象保存模块,包括:布局项对象保存子模块,用于按布局树形数据结构保存所述布局项对象。可选地,所述特定数据结构还包括页脚树形数据结构;所述页面对象保存模块,还包括:页脚对象保存子模块,用于按页脚树形数据结构保存所述页脚对象。可选地,所述特定数据结构还包括字典数据结构;所述页面对象保存模块,还包括:页面样式保存子模块,用于按字典数据结构保存所述页面样式对象。可选地,所述布局树形数据结构具有布局节点,每个布局节点包括布局子节点;所述布局项对象具有对应的基本组件对象;所述布局项对象保存模块,包括:布局节点保存单元,用于将每个布局项对象,分别保存为所述布局树形数据结构中的一个布局节点;布局子节点保存单元,用于将每个布局项对象对应的基本组件对象,分别保存为所述布局项对象对应的布局节点下的一个布局子节点。可选地,所述页脚树形数据结构具有页脚节点,每个页脚节点包括页脚子节点;所述页脚对象具有对应的基本组件对象;所述页脚对象保存子模块,包括:页脚节点保存单元,用于将每个页脚对象,分别保存为所述页脚树形数据结构中的一个页脚节点;页脚子节点保存单元,用于将每个页脚对象对应的基本组件对象,分别保存为所述页脚对象对应的页脚节点下的一个页脚子节点。可选地,所述页面样式对象具有样式名称,所述页面样式对象保存子模块,包括:关联关系获取单元,用于获取所述页面样式对象与对应的样式之间的关联关系;关联关系保存单元,用于将所述关联关系保存在字典数据结构中。可选地,所述页面对象渲染模块,包括:顶层页面对象获取子模块,用于当所述特定数据结构为树形数据结构时,循环获取所述树形数据结构顶层的所述页面对象;布局形式确定子模块,用于确定所述页面对象的布局形式;页面对象渲染子模块,用于按照所述布局形式渲染所述页面对象。可选地,当所述当前操作系统为ios系统时,所述页面为表格数据展示视图uitableview,所述表格数据展示视图uitableview具有多个内容单元cell;所述页面对象渲染子模块,包括:cell渲染单元,用于按照所述布局形式,将每一个所述页面对象分别渲染为所述表格数据展示视图uitableview中的一个内容单元cell。可选地,当所述当前操作系统为安卓系统时,所述页面为列表视图listview;所述列表视图listview具有多个列表条目item;所述页面对象渲染子模块,包括:item渲染单元,用于按照所述布局形式,将每一个所述页面对象分别渲染为所述列表视图listview中的一个item。可选地,所述页面对象渲染子模块,包括:第一顶层页面渲染单元,用于当所述布局形式为流式布局时,将所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。可选地,所述页面对象渲染子模块,包括:轮播组件绘制单元,用于当所述布局形式为轮播布局时,在所述页面中绘制轮播组件;子布局形式确定单元,用于确定多个所述页面对象的子布局形式;所述子布局形式包括流式布局或格栅布局;第二顶层页面对象渲染单元,用于在所述轮播组件中,将多个所述顶层页面对象按照所述流式布局,或,所述格栅布局渲染至所述页面中。可选地,所述页面对象渲染子模块,包括:列宽计算单元,用于当所述布局形式为格栅布局时,计算每个所述页面对象的列宽;第三顶层页面对象渲染单元,用于将每个所述页面对象以对应的列宽渲染至所述页面中,并将每个所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。可选地,所述页面对象渲染模块,包括:样式查找子模块,用于当所述特定数据结构为字典数据结构时,在所述字典数据结构中,查找所述页面样式对象对应的样式;页面样式对象渲染子模块,用于采用所述样式渲染所述页面样式对象。本发明实施例还公开了一种装置,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。本发明实施例包括以下优点:本发明实施例提供了一种页面渲染方法,包括:从服务器中提取页面描述文件;再从页面描述文件中提取属性标签,并按当前操作系统将属性标签映射为对应的页面对象;接着按特定数据结构保存页面对象,最后按该特定数据结构渲染页面对象。在本发明实施例中,不同的操作系统可以通过从服务器获取相同的页面描述文件,来渲染得到相同的页面;从而无需根据操作系统的不同来编写多套代码,实现了页面描述文件的跨平台使用。此外,通过在服务器上部署按预定义规则生成的页面描述文件的方式,使得移动终端可以实时获取页面描述文件的更新信息,实现页面的动态更新。附图说明图1是本发明的一种页面渲染方法实施例的步骤流程图;图2是本发明的一种页面渲染方法的另一种实施例的步骤流程图;图3a是本发明的一种流式布局渲染生成的页面的示意图;图3b是本发明的一种轮播布局渲染生成的页面的示意图;图3c是本发明的一种格栅布局渲染生成的页面的示意图;图4是本发明的一种页面渲染装置实施例的结构框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明实施例的核心构思之一在于,在服务器上部署可分别被部署在ios系统和安卓系统上的解析引擎解析的页面描述文件;使得ios系统和安卓系统可基于对应的解析规则从相同的页面描述文件中,渲染出适用于自身的页面。以下通过具体实施例进行说明:参照图1,示出了本发明的一种页面渲染方法实施例的步骤流程图,应用于移动终端,所述移动终端配置有对应的操作系统;所述移动终端与服务器连接,所述服务器部署有按预定义规则生成的页面描述文件,所述方法具体可以包括如下步骤:步骤101,从所述服务器中提取页面描述文件;页面描述文件,是指以代码的形式编写,用于描述页面内容及样式的文件。在本发明实施例中,在服务器上部署页面描述文件之前,需要预先按照预定义规则生成页面描述文件。在具体实现中,可以预先为ios系统和安卓系统制定统一的页面描述模板,通过该页面描述模板来编写页面描述文件。在一个示例中,可以通过标准的htmi语言来制定页面描述模板。在页面描述模板中,定义了页面的结构、页面的布局形式、以及包含在布局形式下的页面的基本组件。其中,页面结构可以包括配置信息、导航、布局项、页脚四部分构成。配置信息可以定义页面需要导入的资源文件,其中,资源文件中可以包括存储页面布局代码的文件和存储页面样式表代码的文件。页面布局代码可以使用<script>标签导入,其中src属性的值为资源文件的具体路径。页面样式表代码可以使用<link>标签导入,其中href属性的值为资源文件的具体路径。页面布局代码影响页面布局,页面样式表代码影响页面样式。导航可以用于配置页面标题。布局项定义了页面的布局内容和布局形式。页脚定义了每个页面的页脚信息,如页码等。页面描述模板所定义的页面布局形式可以包括流式布局、轮播布局、格栅布局。流式布局是指按顺序从上到下布局。在一个示例中,可以使用<liclass=“detail”>定义流式布局项,其中,流式布局项可以包含<divclass=“text”>文本标签、<img>图片标签。轮播布局是指以左右轮播的形式展示布局项。在一个示例中,可以使用<liclass=“paging”>定义轮播布局,其下包含需要进行轮播展示的流式布局项目或者格栅布局项目。格栅布局是由行和列组成,使用<divclass=“row”>标记表示一行,其下紧跟一个或者若干个<divclass=“col-md-x”>形式的项目,用以标记一列。在一个row中,每一个<divclass=“col-md-x”>项目代表一列,x的数字为该列的宽度比例。基本组件可以包含在流式布局或格栅布局中,包括文本、图片、按钮、输入框等。通过流式布局、轮播布局、格栅布局以及包含在其中的文本、图片、按钮、输入框等各种基本组件的有机结合,用户便可以使用本发明实施例定义的模板语言,编写出任意形式排版的移动终端页面。当服务器上部署了页面描述文件后,移动终端便可以通过http协议从服务器下载页面描述文件。步骤102,从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;属性标签标识了页面描述文件中各段代码的含义。在本发明实施例中,在获取了页面描述文件后,可以从页面描述文件中提取属性标签,根据移动终端当前操作系统的不同,可以将属性标签映射为ios系统或安卓系统对应的页面对象。步骤103,按特定数据结构保存所述页面对象;数据结构是计算机存储、组织数据的方式;是指相互之间存在一种或多种特定关系的数据元素的集合。在本发明实施例中,可以使用特定的数据结构保存页面对象。步骤104,按所述特定数据结构渲染所述页面对象。在得到保存了页面对象的特定数据结构后,可以按照该特定数据结构渲染页面对象。在本发明实施例中,移动终端从服务器中提取页面描述文件;再从页面描述文件中提取属性标签,并按当前操作系统将属性标签映射为对应的页面对象;接着按特定数据结构保存页面对象,最后按该特定数据结构渲染页面对象。在本发明实施例中,不同的操作系统可以通过从服务器获取相同的页面描述文件,来渲染得到相同的页面,从而无需根据操作系统的不同来编写多套代码,实现页面描述文件的跨平台使用。此外,通过在服务器上部署按预定义规则生成的页面描述文件的方式,使得移动终端可以实时获取页面描述文件的更新信息,实现页面的动态更新。参照图2,示出了本发明的一种页面渲染方法的另一种实施例的步骤流程图,具体可以包括如下步骤:步骤201,当打开一个页面时,所述移动终端获取与所述页面描述文件对应的统一资源定位符;统一资源定位符(uniformresourcelocator,url),是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的url,它包含的信息指出文件的位置以及应该怎么处理它。当用户打开一个页面时,部署在移动终端上,适用于移动终端上的操作系统的解析引擎,将接收到一个页面描述文件url。该url可用于获取对应的页面描述文件。步骤202,从所述服务器中提取与所述统一资源定位符对应的页面描述文件;在获取到统一资源定位符rul后,可以通过http协议,从服务器上指定的url下载页面描述文件。在一个示例中,在获取到统一资源定位符后,解析引擎还可以先在移动终端本地缓存的文件中,查找是否有已经缓存过的页面描述文件,如果已缓存过对应的页面描述文件,则可以调用已缓存的页面描述文件。步骤203,从所述页面描述文件中提取属性标签,并按照当前操作系统将所述属性标签映射为对应的页面对象;在本发明实施例中,在获取了页面描述文件后,可以从页面描述文件中提取属性标签,根据移动终端当前操作系统的不同,可以将属性标签映射为ios系统或安卓系统对应的页面对象。在本发明实施例中,所述页面描述文件包括页面布局文件;所述属性标签包括布局项标签;所述页面对象包括布局项对象;步骤203可以包括以下子步骤:子步骤s11,从所述页面布局文件中提取所述布局项标签;在本发明实施例中,可以从页面布局文件中提取布局项标签。子步骤s12,解析所述布局项标签,并按照当前操作系统将所述布局项标签映射为对应的布局项对象。在获取到布局项标签后,可以对所得到的布局项标签进行解析,并根据操作系统的不同将布局项标签映射为对应的布局项对象。在本发明实施例中,所述属性标签还包括页脚标签;所述页面对象还包括页脚对象;步骤203还可以包括以下子步骤:子步骤s13,从所述页面布局文件中提取页脚标签;在本发明实施例中,可以从页面布局文件中提取页脚标签。子步骤s14,解析所述页脚标签,并按照当前操作系统将所述页脚标签映射为对应的页脚对象。在获取到页脚标签后,可以对所得到的页脚标签进行解析,并根据操作系统的不同将页脚标签映射为对应的页脚对象。所述页面描述文件还包括页面样式文件;所述属性标签还包括页面样式标签;所述页面对象还包括页面样式对象,步骤203还可以包括以下子步骤:子步骤s15,从所述页面样式文件中提取页面样式标签;在本发明实施例中,可以从页面布局文件中提取页面样式标签。子步骤s16,解析所述页面样式标签,并按照当前操作系统将所述页面样式标签映射为对应的页面样式对象。在获取到页面样式标签后,可以对所得到的页面样式标签进行解析,并根据操作系统的不同将页面样式标签映射为对应的页面样式对象。步骤204,按特定数据结构保存所述页面对象;数据结构是计算机存储、组织数据的方式;是指相互之间存在一种或多种特定关系的数据元素的集合。在本发明实施例中,可以使用特定的数据结构保存页面对象。在本发明实施例中,特定数据结构可以包括布局树形数据结构,页脚树形数据结构和字典数据结构。根据页面对象的不同,可以将不同的页面对象保存在不同的数据结构中。例如,将布局项对象保存在布局树形数据结构中;将页脚对象保存在页脚树形数据结构中;将页面样式对象保存在字典数据结构中。其中,树形数据结构是一类非线性数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点(每个节点有零个或多个子节点)组成一个具有层次关系的集合。树形数据结构中,每一个元素均为一个对象,对象中映射了相应xml元素中的所有属性。其中,字典数据结构是一种以“键-值对”形式存储数据的数据结构,通过“键”可以去获取对应的“值”。在本发明实施例中,所述布局树形数据结构具有布局节点,每个布局节点包括布局子节点;所述布局项对象具有对应的基本组件对象;所述按布局树形数据结构保存布局项对象,可以包括以下子步骤:子步骤s21,将每个布局项对象,分别保存为所述布局树形数据结构中的一个布局节点;每个布局树形数据结构从层次上看具有同层级的布局节点和从属于布局节点的布局子节点,在本发明实施例中,可以将每个布局项对象保存为布局树形数据结构的一个布局节点。子步骤s22,将每个布局项对象对应的基本组件对象,分别保存为所述布局项对象对应的布局节点下的一个布局子节点。在部署好布局树形数据结构的布局节点后,可以将每个布局项对象下包含的基本组件对象,保存为从属于保存有布局项对象的布局节点下的一个布局子节点。在本发明实施例中,所述页脚树形数据结构具有页脚节点,每个页脚节点包括页脚子节点;所述页脚对象具有对应的基本组件对象;所述按页脚树形数据结构保存所述页脚对象,可以包括以下子步骤:子步骤s31,将每个页脚对象,分别保存为所述页脚树形数据结构中的一个页脚节点;参照布局树形数据结构可以构建页脚树形数据结构,每个页脚树形数据结构从层次上看具有同层级的页脚节点和从属于页脚节点的页脚子节点,在本发明实施例中,可以将每个页脚对象保存为布局树形数据结构的一个页脚节点。子步骤s32,将每个页脚对象对应的基本组件对象,分别保存为所述页脚对象对应的页脚节点下的一个页脚子节点。在部署好页脚树形数据结构的页脚节点后,可以将每个页脚对象下包含的基本组件对象,保存为从属于保存有页脚对象的页脚节点下的一个页脚子节点。在本发明实施例中,对于使用形如<linkhref=“/assets/native/style.css”rel=“stylesheet”></link>描述的资源文件,其中,包含页面上的颜色、文字大小、位置、尺寸相关的样式描述,下载完成后,将其作为样式表解析。将解析结果保存在字典数据结构中。所述按字典数据结构保存所述页面样式对象,可以包括以下子步骤:子步骤s41,获取所述页面样式对象与对应的样式之间的关联关系;在本发明实施例中,可以从页面样式对象的属性中获取对应的样式,建立页面样式对象与样式之间的关联关系。子步骤s42,将所述关联关系保存在字典数据结构中。将页面样式对象与样式之间的关联关系以“键-值对”的形式保存在字典数据结构中,以便于通过字典数据结构中“键”,获取保存在样式表中的对应的样式。例如,通过页面样式对象的class属性中的title、content的名称,和样式表中的“.title”、“.content”的字典“键”关联,使得通过“键”即可从样式表中获取到对应的样式。此外,在本发明实施例中,页面描述文件还包含有导航项,解析引擎拿到一个页面描述文件后,可以将其作为一个xml文件进行解析。首先查找html->head下的外部资源(script与link)元素,如果存在外部资源,则另开启一个线程下载外部资源。然后查找html->body->div[class=“head”]->div[class=“title”]元素,将其中的内容,作为页面导航条标题。步骤205,按所述特定数据结构渲染所述页面对象。在得到保存了页面对象的特定数据结构后,可以按照该特定数据结构渲染页面对象。在本发明实施例中,步骤205可以包括以下子步骤:子步骤s51,当所述特定数据结构为树形数据结构时,循环获取所述树形数据结构顶层的所述页面对象;在本发明实施例中,在对树形数据结构进行渲染时,移动终端中的渲染引擎循环获取布局树中的所有顶层对象,包括流式布局对象(detailitem)、轮播布局对象(pagingitem)、格栅布局对象(rowitem)。子步骤s52,确定所述页面对象的布局形式;在获取到顶层页面对象后,可以确定所获取的页面对象的布局形式是流式布局,还是轮播布局,还是格栅布局。子步骤s53,按照所述布局形式渲染所述页面对象。在确定了布局形式后,便可以根据布局形式,将每个顶层的页面对象作为一个独立的view进行渲染,然后作为列表视图的一行,添加到页面上。在一个示例中,当所述操作系统为ios系统时,所述页面为表格数据展示视图uitableview,所述uitableview具有多个内容单元cell;所述按照所述布局形式渲染所述页面对象,可以包括:按照所述布局形式,将每一个顶层的页面对象分别渲染为所述uitableview中的一个cell。在ios系统中,整个页面是一个uitableview,树形数据结构中第一层的每一个detailitem、pagingitem、rowitem,作为uitableview的一个cell。在一个示例中,当所述操作系统为安卓系统时,所述页面为列表视图listview;所述listview具有多个列表条目item;所述按照所述布局形式渲染所述页面对象,包括:按照所述布局形式,将每一个顶层页面对象分别渲染为所述listview中的一个item。在安卓系统中,整个页面是一个listview,树形数据结构中的每一层的每一个detailitem、pagingitem、rowitem,作为listviewadapter中一个item对应的view。由上述示例可知,无论是ios系统还是安卓系统,均使用列表视图渲染页面,而列表视图中的一行,即是树形数据结构中的一个顶层元素(detailitem、pagingitem、rowitem),对应到页面描述文件来说,列表图中的一行,即是<ulclass=“list”>下的一个顶层标签。在本发明实施例中,所述按照所述布局形式渲染所述页面对象,包括:当所述布局形式为流式布局时,将所述顶层页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。流式布局的detailitem对象,作为一个包含各种组件的容器,使用一个基础view渲染,各系统对应关系如下:渲染引擎循环读取流式布局中的每一个顶层对象,从上到下依次使用原生组件添加到布局的view中。在添加了顶层对象之后,再将每个顶层对象下的基本组件对象渲染到页面中,具体渲染方法如下:参照图3a,示出了本发明实施例的一种流式布局渲染页面示意图。如图3a所示,“第一行文字”,“第二行文字”,“第三行文字”即是以流式布局的形式渲染至页面中的。在本发明实施例中,所述按照所述布局形式渲染所述页面对象,可以包括:子步骤s61,当所述布局形式为轮播布局时,在所述页面中绘制轮播组件;在本发明实施例中,当布局形式为轮播布局时,首先需要在页面中绘制轮播组件。子步骤s62,确定多个顶层页面对象的子布局形式;所述子布局形式包括流式布局或格栅布局;轮播组件可以轮播不同的顶层页面对象,轮播方式主要可以包括通过流式布局由上到下轮播页面对象,以及通过格栅布局左右轮播页面对象。因此,在绘制后轮播组件后,需要确定需要进行轮播的多个顶层页面对象的子布局形式。子步骤s63,在所述轮播组件中,将多个所述顶层页面对象按照所述流式布局,或,所述格栅布局渲染至所述页面中。在确定了多个顶层页面对象的子布局形式后,可以将多个顶层页面对象按照流式布局或者格栅布局的形式渲染至页面中。在实际应用中,轮播布局的pagingitem,使用可以横向滚动的view渲染,对应关系如下:轮播布局中所包含的子项目,作为一个独立的流式或者格栅布局渲染。参照图3b,示出了本发明实施例的一种轮播布局渲染页面示意图。如图所示,“第四行文字”,“第五行文字”,“第六行文字”以流式布局的形式渲染在页面中,“图片a”与左侧的文字以格栅布局的形式呈现。在本发明实施例中,所述按照所述布局形式渲染所述页面对象,可以包括以下子步骤:子步骤s71,当所述布局形式为格栅布局时,计算每个所述页面对象的列宽;格栅布局中,每一个页面对象都具有相应的列宽,而每一个页面对象的列宽,可以由整个屏幕的宽度,以及class=“col-md-x”中的x计算而来,具体的计算过程可以为,将整个屏幕的宽度分为12等分,x的数字代表该列占了其中的几份。子步骤s72,将每个所述顶层页面对象以对应的列宽渲染至所述页面中,并将每个所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。在确定了每个顶层页面对象的列宽后,便可以将每个所述页面对象以对应的列宽渲染至页面中。此外,列对象中包含的基本组件对象,可以使用流式布局的方式进行渲染,即每一个列对象可以对应一个小的流式布局。流式布局中基本组件对象的渲染方式可以参照以下示例:在实际应用中,格栅布局rowitem,作为一个外层容器,使用一个基础view渲染,rowitem中包含列对象columnitem,每一个列对象使用一个独立的view渲染。参照图3c,示出了本发明实施例的一种格栅布局渲染页面示意图。如图所示,将页面列宽划分为12等分,图标1、图标2、图标3以不同的3、4、3的列宽排列。左右两侧各预留1份的空白。此外,通过配置基本组件对象的属性,可以控制渲染时的位置、尺寸、颜色等视觉效果。其中,基本组件对象可以包括文本标签、图片、复选框、文本输入框、按钮等。以下分别是各个基本组件对象的渲染方法和对应的属性列表:基本组件对象渲染-文本标签:属性列表:data-color颜色#ff0000data-align对齐方式centerleftrightdata-size文字大小单位pt18data-marginbottom底部外边距10data-margintop顶外边距10data-paddingleft左内边距10data-paddingright右内边距10data-background背景颜色rgb#ff0000data-bordercolor边框颜色rgb#ff0000data-radius边框圆角半径3data-relativewidth相对宽度90%data-height高度单位pt30data-width宽度单位pt120data-bold加粗bold基本组件对象渲染-图片属性列表:data-align对齐方式centerleftrightdata-marginbottom底部外边距10data-margintop顶外边距10data-height高度单位pt30data-width宽度单位pt120data-paddingleft左内边距10data-paddingright右内边距10data-relativewidth相对宽度90%src图片地址基本组件对象渲染-复选框属性列表:基本组件对象渲染-文本输入框属性列表:基本组件渲染-按钮组件模版描述映射对象ios渲染组件安卓渲染组件按钮<button>buttonelementuibuttonbutton属性列表:data-color颜色#ff0000data-align对齐方式centerleftrightdata-size文字大小单位pt18data-marginbottom底部外边距10data-margintop顶外边距10data-paddingleft左内边距10data-paddingright右内边距10data-background背景颜色rgb#ff0000data-bordercolor边框颜色rgb#ff0000data-radius边框圆角半径3data-relativewidth相对宽度90%data-height高度单位pt30data-width宽度单位pt120data-bold加粗bold在本发明实施例中,所述按所述特定数据结构渲染所述页面对象,可以包括:子步骤s81,当所述特定数据结构为字典数据结构时,在所述字典数据结构中,查找所述页面样式对象对应的样式;字典数据结构中存储了页面样式对象与对应的样式之间的关联关系,当要通过字典数据结构对页面样式对象进行渲染时,可以在字典数据结构中查找页面样式对象对应的样式。子步骤s82,采用所述样式渲染所述页面样式对象。在获取到页面样式对象对应的样式后,可以采用该样式渲染页面样式对象。在本发明实施例中,移动终端从服务器中提取页面描述文件;再从页面描述文件中提取属性标签,并按当前操作系统将属性标签映射为对应的页面对象;接着按特定数据结构保存页面对象,并按该特定数据结构渲染页面对象。在本发明实施例中,不同的操作系统可以通过从服务器获取相同的页面描述文件,来渲染得到相同的页面,从而无需根据操作系统的不同而编写多套代码,实现页面描述文件的跨平台使用。此外,通过在服务器上部署按预定义规则生成的页面描述文件,使得移动终端可以实时获取页面描述文件的更新信息,实现页面的动态更新。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图4,示出了本发明的一种页面渲染装置实施例的结构框图,具体可以包括如下模块:页面描述文件提取模块401,用于从所述服务器中提取页面描述文件;页面对象映射模块402,用于从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;页面对象保存模块403,用于按特定数据结构保存所述页面对象;页面对象渲染模块404,用于按所述特定数据结构渲染所述页面对象。在本发明实施例中,所述页面描述文件提取模块,包括:统一资源定位符获取子模块,用于当打开一个页面时,所述移动终端获取与所述页面描述文件对应的统一资源定位符;页面描述文件提取子模块,用于从所述服务器中提取与所述统一资源定位符对应的页面描述文件。在本发明实施例中,所述页面描述文件包括页面布局文件;所述属性标签包括布局项标签;所述页面对象包括布局项对象;所述页面对象映射模块,包括:布局项标签提取子模块,用于从所述页面布局文件中提取所述布局项标签;布局项对象映射子模块,用于解析所述布局项标签,并按照当前操作系统将所述布局项标签映射为对应的布局项对象。在本发明实施例中,所述属性标签还包括页脚标签;所述页面对象还包括页脚对象;所述页面对象映射模块,还包括:页脚标签提取子模块,用于从所述页面布局文件中提取页脚标签;页脚对象映射子模块,用于解析所述页脚标签,并按照当前操作系统将所述页脚标签映射为对应的页脚对象。在本发明实施例中,所述页面描述文件还包括页面样式文件;所述属性标签还包括页面样式标签;所述页面对象还包括页面样式对象,所述页面对象映射模块,包括:页面样式标签提取子模块,用于从所述页面样式文件中提取页面样式标签;页面样式对象映射子模块,用于解析所述页面样式标签,并按照当前操作系统将所述页面样式标签映射为对应的页面样式对象。在本发明实施例中,所述特定数据结构包括布局树形数据结构;所述页面对象保存模块,包括:布局项对象保存子模块,用于按布局树形数据结构保存所述布局项对象。在本发明实施例中,所述特定数据结构还包括页脚树形数据结构;所述页面对象保存模块,还包括:页脚对象保存子模块,用于按页脚树形数据结构保存所述页脚对象。在本发明实施例中,所述特定数据结构还包括字典数据结构;所述页面对象保存模块,还包括:页面样式保存子模块,用于按字典数据结构保存所述页面样式对象。在本发明实施例中,所述布局树形数据结构具有布局节点,每个布局节点包括布局子节点;所述布局项对象具有对应的基本组件对象;所述布局项对象保存模块,包括:布局节点保存单元,用于将每个布局项对象,分别保存为所述布局树形数据结构中的一个布局节点;布局子节点保存单元,用于将每个布局项对象对应的基本组件对象,分别保存为所述布局项对象对应的布局节点下的一个布局子节点。在本发明实施例中,所述页脚树形数据结构具有页脚节点,每个页脚节点包括页脚子节点;所述页脚对象具有对应的基本组件对象;所述页脚对象保存子模块,包括:页脚节点保存单元,用于将每个页脚对象,分别保存为所述页脚树形数据结构中的一个页脚节点;页脚子节点保存单元,用于将每个页脚对象对应的基本组件对象,分别保存为所述页脚对象对应的页脚节点下的一个页脚子节点。在本发明实施例中,所述页面样式对象具有样式名称,所述页面样式对象保存子模块,包括:关联关系获取单元,用于获取所述页面样式对象与对应的样式之间的关联关系;关联关系保存单元,用于将所述关联关系保存在字典数据结构中。在本发明实施例中,所述页面对象渲染模块,包括:顶层页面对象获取子模块,用于当所述特定数据结构为树形数据结构时,循环获取所述树形数据结构顶层的页面对象;布局形式确定子模块,用于确定所述页面对象的布局形式;页面对象渲染子模块,用于按照所述布局形式渲染所述页面对象。在本发明实施例中,当所述当前操作系统为ios系统时,所述页面为表格数据展示视图uitableview,所述uitableview具有多个内容单元cell;所述页面对象渲染子模块,包括:cell渲染单元,用于按照所述布局形式,将每一个所述页面对象分别渲染为所述uitableview中的一个cell。在本发明实施例中,当所述当前操作系统为安卓系统时,所述页面为列表视图listview;所述listview具有多个列表条目item;所述页面对象渲染子模块,包括:item渲染单元,用于按照所述布局形式,将每一个所述页面对象分别渲染为所述listview中的一个item。在本发明实施例中,所述页面对象渲染子模块,包括:第一顶层页面渲染单元,用于当所述布局形式为流式布局时,将所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。在本发明实施例中,所述页面对象渲染子模块,包括:轮播组件绘制单元,用于当所述布局形式为轮播布局时,在所述页面中绘制轮播组件;子布局形式确定单元,用于确定多个所述页面对象的子布局形式;所述子布局形式包括流式布局或格栅布局;第二顶层页面对象渲染单元,用于在所述轮播组件中,将多个所述页面对象按照所述流式布局,或,所述格栅布局渲染至所述页面中。在本发明实施例中,所述页面对象渲染子模块,包括:列宽计算单元,用于当所述布局形式为格栅布局时,计算每个所述页面对象的列宽;第三顶层页面对象渲染单元,用于将每个所述页面对象以对应的列宽渲染至所述页面中,并将每个所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。在本发明实施例中,所述页面对象渲染模块,包括:样式查找子模块,用于当所述特定数据结构为字典数据结构时,在所述字典数据结构中,查找所述页面样式对象对应的样式;页面样式对象渲染子模块,用于采用所述样式渲染所述页面样式对象。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个计算机存储介质,当由所述一个或多个处理器执行时,使得所述装置执行本发明实施例所述的方法。本发明实施例还提供了一个或多个计算机存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种页面渲染方法和一种页面渲染装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种页面渲染方法,其特征在于,应用于移动终端,所述方法包括:
从服务器中提取页面描述文件;
从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;
按特定数据结构保存所述页面对象;
按所述特定数据结构渲染所述页面对象。
2.根据权利要求1所述的方法,其特征在于,从所述服务器中提取所述页面描述文件,包括:
当打开一个页面时,所述移动终端获取与所述页面描述文件对应的统一资源定位符;
从所述服务器中提取与所述统一资源定位符对应的页面描述文件。
3.根据权利要求1或2所述的方法,其特征在于,所述特定数据结构包括树形数据结构,所述页面对象包括布局项对象,所述按特定数据结构保存所述页面对象,包括:
按所述树形数据结构保存所述布局项对象;
或者,所述特定数据结构包括字典数据结构,所述页面对象包括页面样式对象,所述按特定数据结构保存所述页面对象,包括:
按所述字典数据结构保存所述页面样式对象。
4.根据权利要求3所述的方法,其特征在于,所述按所述特定数据结构渲染所述页面对象,包括:
当所述特定数据结构为树形数据结构时,
循环获取所述树形数据结构顶层的所述页面对象;
确定所述页面对象的布局形式;
按照所述布局形式渲染所述页面对象。
5.根据权利要求4所述的方法,其特征在于,当所述当前操作系统为ios系统时,所述页面为表格数据展示视图,所述表格数据展示视图具有多个内容单元;所述按照所述布局形式渲染所述页面对象,包括:
按照所述布局形式,将每一个所述页面对象分别渲染为所述表格数据展示视图中的一个内容单元;
或者,当所述当前操作系统为安卓系统时,所述页面为列表视图;所述列表视图具有多个列表条目;所述按照所述布局形式渲染所述页面对象,包括:
按照所述布局形式,将每一个所述页面对象分别渲染为所述列表视图中的一个列表条目。
6.根据权利要求4所述的方法,其特征在于,所述按照所述布局形式渲染所述页面对象,包括:
当所述布局形式为流式布局时,将所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中;
当所述布局形式为轮播布局时,在所述页面中绘制轮播组件,确定多个所述页面对象的子布局形式,所述子布局形式包括流式布局或格栅布局,并在所述轮播组件中,将多个所述页面对象按照所述流式布局,或,所述格栅布局渲染至所述页面中;
当所述布局形式为格栅布局时,计算每个所述页面对象的列宽,将每个所述页面对象以对应的列宽渲染至所述页面中,并将每个所述页面对象对应的基本组件对象,按照预设顺序渲染至所述页面中。
7.根据权利要求3所述的方法,其特征在于,所述按所述特定数据结构渲染所述页面对象,包括:
当所述特定数据结构为字典数据结构时,
在所述字典数据结构中,查找所述页面样式对象对应的样式;
采用所述样式渲染所述页面样式对象。
8.一种页面渲染装置,其特征在于,应用于移动终端,所述装置包括:
页面描述文件提取模块,用于从所述服务器中提取页面描述文件;
页面对象映射模块,用于从所述页面描述文件中提取属性标签,并按照所述移动终端的当前操作系统将所述属性标签映射为对应的页面对象;
页面对象保存模块,用于按特定数据结构保存所述页面对象;
页面对象渲染模块,用于按所述特定数据结构渲染所述页面对象。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个计算机存储介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1-7所述的一个或多个的方法。
10.一个或多个计算机存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7所述的一个或多个的方法。
技术总结本发明实施例提供了一种页面渲染方法和装置,包括:从服务器中提取页面描述文件;从页面描述文件中提取属性标签,并按照移动终端的当前操作系统将属性标签映射为对应的页面对象;按特定数据结构保存页面对象;按特定数据结构渲染页面对象。在本发明实施例中,不同的操作系统可以通过从服务器获取相同的页面描述文件,来渲染得到相同的页面,从而无需根据操作系统的不同来编写多套代码,实现页面描述文件的跨平台使用。此外,通过在服务器上部署按预定义规则生成的页面描述文件的方式,使得移动终端可以实时获取页面描述文件的更新信息,实现页面的动态更新。
技术研发人员:刘明
受保护的技术使用者:泰康保险集团股份有限公司;泰康资产管理有限责任公司
技术研发日:2019.12.02
技术公布日:2020.06.09