页面展示方法、装置、计算机设备和存储介质与流程

文档序号:13983162阅读:140来源:国知局
本发明涉及计算机
技术领域
:,特别是涉及页面展示方法、装置、计算机设备和存储介质。
背景技术
::在app(application,应用程序)中设置埋点是很多app开发商收集用户行为数据的重要手段。目前,在app中设置埋点具有多种方案,如代码埋点、可视化埋点和无埋点等。其中,要实现可视化埋点或无埋点,终端需要将app页面截图以及对应的页面数据上传到web服务器。由于无法对app页面截图中的按钮等视图进行触摸操作,web服务器需要对app页面截图中可以进行触摸操作的视图进行识别和区别标记,并通过web页面对区别标记后的app页面截图进行展示,使得app开发商可以在web页面对app页面中不同视图设置埋点。传统方式中,web服务器通过对可以进行触摸操作的视图添加边框,将可以进行触摸操作的视图与其他视图进行区分。但直接根据终端上传的页面数据,对不同视图添加边框,难以对边框的添加位置进行准确定位,常出现边框与视图发生错位等现象,使得对app页面的展示效果不好。技术实现要素:基于此,有必要针对上述技术问题,提供一种能够对页面中的视图进行准确定位的页面展示方法、装置、计算机设备和存储介质。一种页面展示方法,包括:获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点;将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;根据所述多叉树生成多个视图分别对应的层级路径,根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。一种页面展示方法,包括:获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;将所述页面数据发送至服务器,使服务器按照预设规则将多个视图标识添加至多个数组,多个数组具有不同的级别,并根据多个视图之间的层级信息将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点,将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成当前页面对应的多叉树,根据所述多叉树生成多个视图分别对应的层级路径,并根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示;接收服务器返回的多个被埋点视图对应的层级路径;其中,所述层级路径是服务器检测到预设终端多个视图对应的埋点操作时根据所述多叉树生成的;当拦截到视图对应的触摸事件时,根据所述层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将所述触摸事件进行上报。一种页面展示装置,包括:数据获取模块,用于获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;多叉树构建模块,用于按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点;将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;页面展示模块,用于根据所述多叉树生成多个视图分别对应的层级路径,根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。一种计算机设备,包括存储装置及其处理器,所述存储装置中储存有计算机程序,所述处理器执行所述计算机程序时实现本发明任意一个实施例中提供的页面展示方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,该指令被处理器执行时实现本发明任意一个实施例中提供的页面展示方法的步骤。上述页面展示方法、装置、计算机设备和存储介质,根据应用程序当前页面多个视图的层级信息,可以将不同视图的视图标识添加至多个数组;根据不同级别数组包含的视图标识,可以查询对应视图的视图名称;通过将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为该父节点的子节点,将该子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,可以构建应用程序当前页面对应的多叉树;根据视图的层级信息构建的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以对每个视图进行准确定位,从而可以准确在页面截图添加埋点边框,提高应用程序当前页面展示效果。附图说明图1为一个实施例中的页面展示方法的应用环境图;图2为一个实施例中页面展示方法的流程图;图3为一个实施例中应用程序当前页面对应的多叉树的示意图;图4为一个实施例中在页面截图中添加埋点边框的示意图;图5为另一个实施例中页面展示方法的流程图;图6为一个实施例中页面展示装置的结构图;图7为一个实施例中计算机设备的框图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。本申请提供一种页面展示方法,可以应用于如图1所示的应用环境中。其中,第一终端102、第二终端104与第三终端106分别通过网路与服务器108连接。第一终端102、第二终端104和第三终端106分别可以是智能手机、平板电脑、台式计算机、车载电脑中的至少一种,但并不局限于此。服务器108可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。第一终端102与第三终端106上分别运行了需要设置埋点的应用程序。第一终端102对应应用程序开发商,第三终端106对应应用程序用户。第一终端102与第三终端106可以是同一终端,也可以是不同终端。第一终端102与第三终端106上运行的应用程序可以是原生应用程序(nativeapp),也可以是网络应用程序(webapp),还可以是混合应用程序。第一终端102和第三终端106在应用程序中分别预安装了插件sdk(softwaredevelopmentkit,软件开发工具包)。sdk是基于开源的ui(userinterface,用户界面)跨平台框架预先开发生成的脚本。ui跨平台框架可以是reactnative框架或weex框架等。sdk包括数据采集脚本、触摸事件拦截脚本、控件匹配脚本和触摸事件上报脚本等,用于数据采集、触摸事件拦截、控件匹配和触摸事件上报等。当需要对应用程序设置埋点时,第一终端102利用sdk获取应用程序当前页面的页面数据,将页面数据发送至服务器108。页面数据包括多个视图的视图名称和层级信息。服务器108根据多个视图的视图名称和层级信息,构建应用程序当前页面对应的多叉树,根据多叉树在页面截图添加多个视图对应的埋点边框,将设有埋点边框的页面截图发送至第二终端104,使第二终端104通过web页面对应用程序当前页面进行展示。应用程序开发商可以通过第二终端104对设有埋点边框的控件进行圈选,以设置埋点。第二终端104将被埋点控件对应的埋点信息返回至服务器108。服务器108将被埋点控件的埋点信息发送至第三终端106。根据多叉树,服务器可以获取每个视图相对其他视图的位置关系,能够对埋点边框的添加位置进行准确定位,对应用程序当前页面具有较好的展示效果。在一个实施例中,如图2所示,提供了一种页面展示方法,以该方法应用于图1中的服务器为例进行说明,具体包括以下步骤:步骤202,获取应用程序当前页面的页面数据;页面数据包括多个视图的视图标识、视图名称和层级信息。当需要对应用程序设置埋点时,第一终端利用sdk获取应用程序当前页面的页面数据,将应用程序当前页面的页面数据封装为预设格式,并对页面数据进行压缩,将压缩后的页面数据加密传输至服务器。预设格式可以是具有数据层级结构的数据格式,如hdf(层次型数据格式)。预设格式也可以是不具有层级结构的数据格式,如采用扁平化结构存储的json格式(一种数据交换格式)。页面数据包括应用程序当前页面的页面截图和当前页面内多个视图的属性信息。页面截图为静态的屏幕截图。视图包括控件和视图控制器。在应用程序当前页面,用于创建和管理控件,对用户是不可见的。用户可以对可见的控件进行触摸操作。触摸操作包括点击、长按、短按或滑动等。属性信息包括视图名称、视图标识和层级信息。容易理解,视图名称可以是控件名称或控制器名称,视图标识可以是控件标识或控制器标识。视图名称可以直接反映视图类型,如uiwindow(一种控件名称)属于窗口类型控件,uibutton属于按钮类型控件,rootviewcontroller属于根视图控制器等。视图标识可以唯一识别一个视图,可以是视图编号,如idn(n=1,2…)等。每个视图具有对应的层级信息,层级信息包括该视图与其他视图之间的继承关系。例如,控件uibutton继承于控件uiview,则控件uibutton为控件uiview的下一层级视图。步骤204,按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别。服务器建立最高级别数组,在页面数据中查询视图名称与预设根视图的视图名称相同的视图,提取与预设根视图具有相同视图名称的视图的视图标识,将提取到的视图标识添加至最高级别数组。例如,最高级别数组可以是a1[id6]。服务器将提取到的视图标记为父视图,根据该父视图的层级信息,对页面数据进行遍历,检测是否存在该父视图对应的子视图。当页面数据中存在对应的子视图时,服务器建立次高级别数组,在页面数据中提取该父视图对应的子视图的视图标识,将提取到的视图标识添加至次高级别数组。例如,次高级别数组可以是a2[id2,id7,id8]。服务器将提取到的子视图作为父视图,在页面数据中查询是否存在对应的子视图。当页面数据中存在对应的子视图时,服务器建立下一级别数组,在页面数据中提取对应的子视图的视图标识,将提取到的视图标识添加至下一级别数组。例如,下一级别数组可以是a3[id1,id4,id5]。服务器将重新提取到的子视图作为父视图,在页面数据中查询是否存在对应的子视图。当页面数据中存在对应的子视图时,服务器按照上述方式建立再下一级别数组。如此循环,直至页面数据中不存在对应的子视图时,得到最低级别数组。例如,最低级别数组可以是a4[id3,id9,id10,id11,id12]。步骤206,查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点。步骤208,查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点。步骤210,将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组。步骤212,利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树。需要说明的是,步骤206、步骤208、步骤210和步骤212分别与步骤204并列执行。换句话说,服务器每生成一个数组,将对应的数组元素作为节点添加至多叉树中。具体的,在生成最高级别数组后,服务器查询最高级别数组的数组元素对应的视图名称,将最高级别数组的数组元素对应的视图名称标记为多叉树的根节点。例如,如图3所示,多叉树的根节点为最高级别数组a1的数组元素id6对应的视图名称uiwindow。在得到多叉树的根节点后,服务器按照上述方式生成次高级别数组,查询次高级别数组的数组元素对应的视图名称,将次高级别数组的数组元素对应的视图名称标记为多叉树中根节点的子节点,利用预设连接线将子节点连接至根节点,形成多叉树的多个树枝。可以理解,根节点也是上述子节点的父节点。例如,如图3所示,预设连接线可以是带有箭头的线段,根节点的子节点为次高级别数组a2的三个数组元素id2、id7和id8分别对应的视图名称uiview、viewcontroller和uiview,对应形成多叉树的三个树枝。在得到多叉树根节点的子节点后,服务器按照上述方式生成下一级别数组,将上述子节点作为该下一级别数组中数组元素的父节点,查询下一级别数组的数组元素对应的视图名称,利用预设连接线将下一级别数组中数组元素对应的视图名称连接至对应的父节点,以对多叉树的树枝进行延长。换句话说,服务器根据上述每个子节点对应视图的层级信息,查询每个子节点对应视图的下一层级视图,利用预设连接线将下一级别数组中相应数组元素对应的视图名称连接至对应的子节点。例如,如图3所示,下一级别数组a3包括三个数组元素id1、id4和id5,分别对应的视图名称为uiview、childcontroller和childcontroller。假设次高级别数组a2的数组元素id2对应视图不存在下一层级视图,数组元素id7对应视图的下一层级视图包括数组元素id1对应的视图,数组元素id8对应视图的下一层级视图包括数组元素id4对应的视图和数组元素id5对应的视图,则将数组元素id1对应视图的视图名称uiview连接至数组元素id7对应视图的视图名称viewcontroller,将数组元素id4对应视图的视图名称childcontroller和数组元素id5对应视图的视图名称childcontroller分别连接至数组元素id8对应视图的视图名称uiview。服务器按照上述方式依次将每个数组中数组元素对应视图的视图名称作为节点添加至多叉树中,形成应用程序当前页面最终对应的多叉树。第一终端上传至服务器的页面数据经过格式转换后可能不具有层级结构,且页面数据仅包含单个视图的层级信息,使得多个视图之间的层级关系隐蔽且分散,难以从整体上反应应用程序当前页面多个视图间的层级结构。本实施例中,服务器可以根据不具有层级结构的页面数据,对应用程序当前页面中多个视图的属性信息进行整合,提炼出可以从整体上反应当前页面多个视图间层级结构的多叉树。步骤214,根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。服务器在多叉树构建过程中,对多叉树每个节点进行编号,以使每个节点对应的视图具有视图索引。具体的,服务器对多叉树中不同层级节点对应的视图分别进行单独编号,将编号作为对应视图的视图索引。服务器可以将视图索引作为对应视图的视图名称的下标进行记录。例如,如图3所示,三个按钮类型视图对应的视图索引可以是uibutton0,uibutton1和uibutton2。服务器根据视图的属性信息对应用程序当前页面可以进行触摸操作的视图(以下称为“可触摸视图”)进行是识别。服务器根据可触摸视图对应的视图标识,在多叉树中查询对应的节点,将该节点标记为目标节点。服务器利用第一预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径。服务器利用第二预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。服务器根据视图路径和索引路径对每个可以进行触摸操作的视图进行准确定位,并根据定位对可以进行触摸操作的视图添加对应的埋点边框。埋点边框可以响应应用程序开发商的点击操作。如图4所示,埋点边框的形状与大小可以是与对应视图的图标的形状与大小一致。服务器将设有埋点边框的页面截图发送至预设终端,即第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端对页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。本实施例中,根据应用程序当前页面多个视图的层级信息,可以将不同视图的视图标识添加至多个数组;根据不同级别数组包含的视图标识,可以查询对应视图的视图名称;通过将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为该父节点的子节点,将该子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,可以构建应用程序当前页面对应的多叉树;根据视图的层级信息构建的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以对每个视图进行准确定位,从而可以准确在页面截图添加埋点边框,提高应用程序当前页面展示效果。在一个实施例中,按照预设规则将多个视图标识添加至多个数组的步骤,包括:在页面数据中提取视图名称与预设根视图的视图名称相同的视图对应的视图标识,将视图名称与预设根视图的视图名称相同的视图标记为父视图,将提取到的视图标识添加至最高级别数组;根据多个视图之间的层级信息对页面数据进行遍历,在页面数据中提取父视图对应的子视图的视图标识,将子视图的视图标识添加至次高级别数组;将子视图作为父视图,在页面数据中查询是否存在对应的子视图;当页面数据中存在对应的子视图时,将对应的子视图的视图标识添加至下一级别数组,返回将子视图作为父视图,在页面数据中查询是否存在对应的子视图的步骤;当页面数据中不存在对应的子视图时,得到最低级别数组。预设根视图包括预设根控件和预设根控制器。父视图包括父类控件和父类控制器,子视图包括子类控件和子类控制器。父视图对应的子视图是指父视图的下一层级视图,例如,当控件uibutton为控件uiview的下一层级控件时,则控件uibutton可以理解为控件uiview的子类控件。服务器建立最高级别数组,在页面数据中提取控件名称与预设根控件的控件名称相同的控件对应的控件标识,将提取到的控件标识添加至最高级别数组。预设根控件可以是uiwindow。服务器将提取到的控件标记为父类控件,根据该父类控件的层级信息,对页面数据进行遍历,检测是否存在该父类控件对应的子类控件。当页面数据中存在对应的子类控件时,服务器建立次高级别数组,在页面数据中提取该父类控件对应的子类控件(如subviews)的控件标识,提取控制器名称与预设根控制器的控制器名称相同的视图控制器的控制器标识,将提取到的视图控制器标记为父类控制器,将提取到的子类控件的控件标识以及提取到的控制器标识添加至次高级别数组。预设根控制器可以是rootviewcontroller(一种视图控制器)。服务器将提取到的子类控件作为父类控件,在页面数据中查询是否存在对应的子类控件,以及是否存在上述父类控制器对应的子类控制器(如childrenviewcontroller和presentedviewcontroller)。当页面数据中存在对应的子类控件,或存在父类控制器对应的子类控制器时,服务器建立下一级别数组,在页面数据中提取对应的子类控件的控件标识和/或上述父类控制器对应的子类控制器的控制器标识,将提取到的控件标识和/或控制器标识添加至下一级别数组。服务器将重新提取到的子类控件作为父类控件,将提取到的子类控制器作为父类控制器,在页面数据中查询是否存在对应的子类控件,以及对应的子类控制器。当页面数据中存在对应的子类控件,或对应的子类控制器时,服务器按照上述方式建立再下一级别数组。如此循环,直至页面数据中不存在对应的子类控件,也不存在对应的子类控制器时,得到最低级别数组。本实施例中,第一终端上传至服务器的页面数据仅包含单个视图的层级信息,使得多个视图之间的层级关系隐蔽且分散,服务器对分散的层级信息进行整合,根据各个视图的层级信息,分别将视图添加至不同级别的数组,通过数组的级别可以反映每个视图相对其他视图的层级关系,可以提高多叉树的构建效率,进而可以提高对应用程序当前页面的展示效率。在一个实施例中,页面数据还包括多个视图的属性信息;最高级别数组中的视图标识对应的视图名称为多叉树的根节点;层级路径包括视图路径和索引路径;根据多叉树生成多个视图分别对应的层级路径的步骤,包括:根据属性信息对页面截图中的可触摸的视图进行识别;根据可触摸的视图对应的视图标识,在多叉树中查询对应的节点,将节点标记为目标节点;利用第一预设标识将根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径;对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,将编号作为对应视图的视图索引;利用第二预设标识将根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。根据节点对应数组元素所属数组的级别,不同节点在多叉树中具有不同层级。为了方便描述,规定最高级别数组中数组元素对应第一层级节点,次高级别数组中数组元素对应第二层级节点,如此递推。服务器在多叉树构建过程中,对多叉树每个节点进行编号,以使每个节点对应的视图具有视图索引。具体的,服务器对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,对同一层级节点对应的相同类型视图进行连续编号,将编号作为对应视图的视图索引。服务器可以将视图索引作为对应视图的视图名称的下标进行记录。例如,如图3所示,第一层级节点uiwindow与第二层级节点uiwiew对应的视图索引分别可以是初始编号。初始编号可以是0。多个第四层级节点中不同类型视图uibutton和uilabel单独编号,三个相同的按钮类型视图对应的视图索引可以是uibutton0,uibutton1和uibutton2,两个相同的标签类型视图对应的视图索引可以是uilabel0和uilabel1。当应用程序当前页面新增或删除视图时,服务器仅对与新增或删除的视图相同类型的视图重新进行单独编号。例如,当将按钮控件uibutton1删除时,仅uibutton2变更为uibutton1,而对三个标签控件没有影响。对同一层级的不同类型的视图分别进行单独编号,可以尽量减少新增或删除视图对视图索引的影响,具有一定的索引路径抗干扰作用。服务器根据可触摸视图的视图标识,在多叉树中查询对应的节点,将该节点标记为目标节点。服务器利用第一预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径。服务器利用第二预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。组成视图路径的各个视图名称分别对应不同层级的视图,故视图路径可以对不同层级的视图进行区分。例如,假设上述举例中的控件uibutton1对应的视图路径为/uiwindow/viewcontroller/uiview/uibutton,则表示uiwindow为最高层级视图,viewcontroller为uiwindow的下一层级视图,uiview为viewcontroller的下一层级视图,uibutton为uiview的下一层级视图。多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件uibutton0,控件uibutton1和控件uibutton2可以继承于同一控件uiview。索引路径可以反映对一个视图在对应的上一层级视图中的显示层级关系,即可以对同一层级的不同视图进行区分。例如,假设上述举例中的控件uibutton1对应的索引路径为0_1_2_1,则表示uiwindow为最高层级视图,视图控制器viewcontroller为上一层级视图uiwindow的第2个子视图,控件uiview为上一层级视图viewcontroller的第3个子视图,控件uibutton为上一层级视图uiview的第2个子视图。本实施例中,视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,从而视图路径和索引路径的结合可以共同完成控件唯一性定位,从而可以在页面截图上准确添加埋点边框。在一个实施例中,属性信息包括控件名称、基本属性和访问属性;根据多叉树生成多个视图分别对应的层级路径的的步骤,包括:根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件;根据多叉树生成多个可触摸控件分别对应的层级路径。当应用程序为原生app时,第一终端发送至服务器的属性信息包括控件名称和基本属性。基本属性包括透明属性、隐藏属性和交互属性等。交互属性包括userinteractionenabled(一种属性名称)属性。sdk还用于获取应用程序当前页面的页面截图,将页面截图以及多个控件的属性信息发送至服务器。服务器存储了预设集合。预设集合将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。触摸操作包括点击、长按、短按或滑动等。其中,可以进行触摸操作的多个控件的控件名称包括uicontrol,uitableviewcell、uicollectionviewcell,uiview及分别对应的子类控件的控件名称。例如,uiview对应的子类控件包括uibutton,uilabel等。服务器识别控件的控件名称是否属于预设集合中的集合元素。当控件名称不属于预设集合中的集合元素时,则表示该控件不可以进行触摸操作。当控件名称属于预设集合中的集合元素时,服务器获取该控件的透明属性、隐藏属性和交互属性各自的属性值,识别三个属性值是否分别达到各自的预设属性值。当控件的透明属性、隐藏属性和交互属性均具有各自对应的预设属性值时,表示该控件是可见不透明的,且可以与用户交互,即可以响应用户的触摸操作,则服务器将该控件标记为可触摸控件。针对原生app,服务器根据控件的基本属性即可识别该控件是否可以进行触摸操作。webapp或者混合app中存在跨平台页面,如h5(html5,超文本标记语言)页面。由于跨平台页面是由js(javascript,直译式脚本语言)引擎翻译而成,使得跨平台页面中控件的控件名称并不属于预设集合中的集合元素。即使跨平台页面中的控件实际属于可触摸控件,服务器也可能因为其控件名称不属于预设集合中的集合元素,而将可触摸控件判定为无法进行触摸操作的控件,进而无法对该控件设置埋点。当根据基本属性将控件识别为不可以进行触摸操作的控件时,尚不能确定该控件不能进行触摸操作,服务器识别控件的控件名称是否属于目标集合中的集合元素。目标集合可以是应用程序开发商预先在服务器配置的。目标集合记录了可以进行触摸操作的多个控件的控件名称。目标集合中的控件名称包括rctview(一种控件名称)及其子类控件的控件名称。当控件名称不属于目标集合中的集合元素时,则表示该控件不可以进行触摸操作。当应用程序为webapp或者混合app时,第一终端利用sdk获取的属性信息还包括访问属性。访问属性包括isaccessibilityelement(一种属性名称)属性。当控件名称属于目标集合中的集合元素时,服务器获取访问属性的属性值,判断该属性值是否为预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将控件标记为可触摸控件。服务器按照上述方式生成可触摸控件的层级路径,根据层级路径对可触摸控件添加对应的埋点边框,将添加了埋点边框的页面截图发送至第二终端。本实施例中,当应用程序为原生app时,根据基本属性即可对应用程序当前页面中的可触摸控件进行识别;当应用程序为webapp或者混合app时,可以进一步根据访问属性对对应用程序当前页面中的可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用,可以提高可触摸控件的识别精度。仅需根据多叉树生成可触摸控件的层级路径,而非全部视图的层级路径,可以减少服务器资源占用。在一个实施例中,根据层级路径在页面截图对相应的视图添加对应的埋点边框的步骤,包括:对多叉树进行遍历,依次对多叉树中的多个节点进行编号,将编号作为相应节点对应的视图的重叠索引;根据层级路径在页面截图对相应视图添加对应的埋点边框;当多个可触摸的视图对应的埋点边框发生重叠时,获取相应视图对应的重叠索引,根据重叠索引对埋点边框的位置进行调整。当两个相邻层级的视图均可以响应触摸操作,或弹窗显示时,会出现多个视图发生遮挡的情况。例如,如图4所示,“消息”“联系人”和“动态”三个视图将“聊天好友7”对应的视图遮挡。服务器根据层级路径对可以进行触摸操作的视图添加对应的埋点边框。当多个视图发生遮挡时,多个视图对应的埋点边框也会出现交叉或重叠的问题。为了解决埋点边框交叉或重叠问题,服务器对应用程序当前页面每个视图分配对应的重叠索引。具体的,服务器对多叉树进行层序遍历,依次对多叉树中的多个节点进行编号,将该编号作为节点对应视图的重叠索引。根据遍历顺序,编号逐渐增大或者逐渐减小,以使服务器根据编号可以区分不同节点。层序遍历是指对多叉树中不同层级的节点从高层级向低层级进行逐层遍历,对同一层级的多个节点进行顺序遍历。当多个视图对应的埋点边框发生重叠时,服务器获取该视图对应的重叠索引,根据重叠索引对多个视图对应的埋点边框进行展示。假设根据遍历顺序,重叠索引逐渐增大,则服务器将重叠索引大的视图对应的埋点边框置于重叠索引小的视图对应的埋点边框之上进行展示。或者,服务器将重叠索引小的视图对应的埋点边框中,与被重叠索引大的视图对应的埋点边框发生交叉或重叠的部分省略展示。例如,如图4所示,将“聊天好友7”视图对应的埋点边框中,与“消息”“联系人”和“动态”三个视图存在重叠的部分省略展示。本实施例中,在根据层级路径对埋点边框进行准确定位的基础上,进一步通过对应用程序当前页面每个视图分配对应的重叠索引,对埋点边框的显示层级进行准确定位,避免埋点边框交叉或重叠的问题,从而可以进一步提高对应用程序当前页面的展示效果。在一个实施例中,如图5所示,提供了一种页面展示方法,以该方法应用于第三终端为例进行说明,具体包括以下步骤:步骤502,获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息。步骤504,将页面数据发送至服务器,使服务器按照预设规则将多个视图标识作为数组元素添加至多个数组,多个数组具有不同的级别,并根据多个视图之间的层级信息将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点,将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组,利用父节点和对应的子节点生成当前页面对应的多叉树,根据多叉树生成多个视图分别对应的层级路径,并根据多叉树生成多个视图分别对应的层级路径,并根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。步骤506,接收服务器返回的多个被埋点视图对应的层级路径;其中,层级路径是服务器检测到预设终端多个视图对应的埋点操作时根据多叉树生成的。步骤508,当拦截到视图对应的触摸事件时,根据层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将触摸事件进行上报。服务器根据第一终端上报的应用程序当前页面的页面数据,构建应用程序当前页面对应的多叉树,并根据应用程序当前页面多个视图的属性信息识别可触摸视图,根据多叉树生成多个可触摸视图分别对应的层级路径,根据层级路径在页面截图对多个可触摸视图添加对应的埋点边框。服务器将设有埋点边框的页面截图发送至第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端在页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。当第二终端获取到埋点边框对应的点击操作时,获取被埋点的视图(以下称“被埋点视图”)的埋点信息,将被埋点视图的埋点信息发送至服务器。被埋点视图包括被埋点控件。服务器根据多叉树生成每个被埋点控件的层级路径。层级路径包括视图路径和索引路径。当用户通过第三终端对应用程序当前页面的某个控件进行触摸操作时,第三终端利用sdk对被触摸的视图(以下称“被触摸视图”)对应的触摸事件进行拦截,获取被触摸视图的视图路径和索引路径,将被触摸视图的视图路径和索引路径分别与被埋点视图的视图路径和索引路径进行匹配。当被触摸视图与被埋点视图的视图路径与索引路径分别匹配成功时,标识该被触摸视图属于被埋点视图,第三终端利用sdk将被触摸视图对应的触摸事件上报至服务器。本实施例中,根据应用程序当前页面对应的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以对每个视图进行准确定位,从而可以准确在页面截图添加埋点边框;通过点击埋点边框可以对应用程序设置埋点,终端根据被埋点控件的层级路径可以对被触摸控件的触摸事件进行准准确上报。在一个实施例中,在获取应用程序当前页面中被触摸控件对应的触摸事件,对触摸事件进行拦截的步骤之前,还包括:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表;将配置表发送至服务器。当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面向服务器发送可视化埋点请求。服务器根据可视化埋点请求执行预设的埋点准备任务,作好埋点准备后,向第一终端返回截屏请求。截屏请求中携带了空的配置表,配置表记录了多个配置项。配置项包括视图名称及对应的属性名称等,如基本属性和访问属性等。配置表可以是应用程序开发商预先配置在服务器中的。根据截屏请求及携带的配置表,第一终端利用sdk对应用程序当前页面进行解析,获取当前页面中多个视图对应的属性信息,将属性信息对应配置项添加至配置表中,以对配置表进行填写,将填写后的配置表发送至服务器。服务器在配置表中读取视图的属性信息,根据属性信息生成多个被埋点控件的视图路径和索引路径,将多个被埋点控件的视图路径和索引路径发送至第三终端。本实施例中,应用程序开发商可以根据需求及时在配置表中添加遗漏的配置项,也可以删除不必要的配置项,如数据量较大的控件背景图片,避免第一终端上报一些冗余的数据,可以对上报的视图的属性信息进行一定程度上的优化,也可以减少第一终端获取视图的属性信息以及填写配置表的时间,进而可以提高服务器对视图路径和索引路径的生成效率。在一个实施例中,获取应用程序页面的页面数据的步骤,包括:接收服务器发送的截图请求;截图请求携带了上次发送至服务器的页面截图对应的截图标识;对应用程序当前的页面进行截图,得到当前的页面截图,获取当前的页面截图对应的截图标识;将页面数据发送至服务器的步骤,包括:将上次页面截图的截图标识与当前页面截图的截图标识进行对比;当上次页面截图的截图标识与当前页面截图的截图标识不一致时,将当前的页面截图及对应的截图标识发送至服务器。当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面通过扫描识别码或输入特定手势向服务器发送可视化埋点请求。具体的,第一终端获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。通过扫描识别码即可触发可视化埋点,操作简便,且符合当下用户习惯。或者,第一终端获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。通过输入特定手势即可触发可视化埋点,操作简单;特定手势不同于用户操作第一终端时常用手势,可以减少误操作。容易理解,向服务器发送可视化埋点请求还包括多种实施方式,这里不再一一赘述。当第一终端向服务器发送可视化埋点请求,以主动触发设置埋点时,服务器向第一终端发送截图请求。或者,当服务器检测到第二终端显示的页面截图关闭时,服务器也向第一终端发送截图请求,以提示第一终端此时可以进行下一次的数据传输。截图请求携带了第一终端上次发送至服务器的页面截图对应的截图标识。截图标识可以唯一标识页面截图,可以是md5值(message-digestalgorithm5,信息-摘要算法5)等。第一终端利用sdk对应用程序当前页面进行截图,获取应用程序当前页面的页面截图及对应的截图标识。sdk对比截图请求携带的截图标识与当前页面的截图标识是否一致。当截图请求携带的截图标识与当前页面的截图标识不一致时,向服务器发送当前页面的页面截图及对应的多个视图的属性信息。当截图请求携带的截图标识与当前页面的截图标识一致时,第一终端向服务器返回重复截图提示,而不再向服务器发送当前页面的页面数据,可以减少不必要的数据传输。本实施例中,不同于传统方式无论当前页面对应的页面数据是否已经上传均对当前页面对应的页面数据进行定时上传的方式,第一终端只有在截图请求携带的截图标识与当前页面的截图标识不一致时,才进行页面数据的上传,可以减少不必要的数据重复传输,从而可以减少网络资源的占用。在一个实施例中,层级路径包括视图路径和索引路径;根据层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将触摸事件进行上报的步骤,包括:获取被触摸视图的视图路径和索引路径;获取服务器发送的多个被埋点视图的视图路径和索引路径;将被触摸视图的视图路径与被埋点视图的视图路径进行匹配,将被触摸视图的索引路径与被埋点视图的索引路径进行匹配;当被触摸视图与被埋点视图的视图路径和索引路径分别匹配成功时,将被触摸视图对应的触摸事件上报至服务器。第三终端预先对预设类视图进行触摸事件绑定,以当预设类视图被触摸时,可以对被触摸视图对应的触摸事件进行拦截。具体的,第三终端按照预设规则在应用程序对应的安装文件中,查询预设类视图对应的响应函数。预设规则可以是利用系统方法,如runtime(一种系统方法),也可以是采用aop编程(面向切面编程)等。安装文件可以是ipa文件(iphoneapplication,苹果程序应用文件),apk文件(androidpackage,安卓程序应用文件)等,包括多个视图对应的响应函数。预设类视图包括uicontrol(一种视图名称),uitableview,uicollectionview,uiview以及分别对应的子类视图。如uicontrol对应的子类视图包括uitextfield、uibutton、uislider、uiswitch或uisegmentcontrol等。第三终端在查询到预设类视图对应的响应函数中,插入预先编写的触摸事件拦截函数。应当理解,不同预设类视图对应的响应函数可以不同,对应的触摸事件拦截函数的插入位置也可以不同。触摸事件拦截函数为sdk的触摸事件拦截脚本中的方法函数,从而可以利用sdk对触摸事件进行拦截。预设类型视图涵盖了被设置埋点概率较高的多个视图的视图名称,第三终端仅需计算页面数据中预设类型视图的层级路径,也只需将预设类型视图的层级路径与服务器下发的被埋点视图的层级路径进行匹配,而无需对应用程序当前页面所有视图进行遍历,可以减少对第三终端资源的占用,也可以提高触摸事件绑定的效率。当服务器将被埋点视图的视图路径和索引路径发送至第三终端时,第三终端利用sdk对被埋点视图的视图路径和索引路径进行缓存。当用户通过第三终端对应用程序当前页面某个控件进行触摸操作时,第三终端利用sdk对被触摸视图对应的触摸事件进行拦截,读取缓存的应用程序当前页面多个视图的属性信息。视图包括控件和视图控制器。在应用程序当前页面,视图控制器用于创建和管理控件,对用户是不可见的。用户可以对可见的控件进行触摸操作。触摸操作包括点击、长按、短按或滑动等。需要说明的是,视图控制器对用户虽是不可见的,但控件和视图控制器一起才能够反映应用程序当前页面中多个视图整体的层级结构,故视图控制器也用于构建控件的视图路径和索引路径。属性信息包括视图名称,视图索引和层级信息。视图索引可以是sdk根据应用程序当前页面多个视图之间的层级关系预先给多个视图分配的。sdk根据该层级关系对不同层级的视图分别进行单独编号,对同一层级的不同类型的视图分别进行单独编号,对同一层级的相同类型视图进行连续编号,将编号作为相应视图对应的视图索引。例如,假设在同一层级的视图中存在三个按钮类型控件,以0作为初始值进行编号,则三个按钮类型控件对应的控件索引依次可以是0,1和2。第三终端利用sdk根据属性信息生成被触摸视图对应的视图路径和索引路径。具体的,sdk根据被触摸视图的层级信息向上逐级回溯,即识别被触摸视图是否存在上一层级视图。容易理解,当被触摸视图为应用程序当前页面的最高层级视图时,被触摸视图不存在上一层级视图。当被触摸视图存在上一层级视图时,提取该上一层级视图的视图名称和视图索引。sdk根据被触摸视图的层级信息继续向上逐级回溯,即识别被触摸视图的上一层级视图是否仍存在对应的上一层级视图,若存在,则提取对应的视图名称和视图索引,直至最高层级视图。根据被触摸视图的层级信息,sdk利用第一预设标识将提取到的多个视图名称逐级拼接,即将最高层级视图至被触摸视图的多个视图的视图名称依次拼接,得到目录字符串,将该目录字符串作为被触摸视图对应的视图路径。sdk利用第二预设标识将提取到的多个视图索引逐级拼接,即将最高层级视图至被触摸视图的多个视图的视图索引依次拼接,得到索引字符串,将该索引字符串作为被触摸视图对应的索引路径,从而得到被触摸视图对应的层级路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。组成视图路径的各个视图名称分别对应不同层级的视图,故视图路径可以对不同层级的视图进行区分。例如,假设上述举例中的控件uibutton1对应的视图路径为/uiwindow/viewcontroller/uiview/uibutton,则表示uiwindow为最高层级视图,viewcontroller为uiwindow的下一层级视图,uiview为viewcontroller的下一层级视图,uibutton为uiview的下一层级视图。多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件uibutton0,控件uibutton1和控件uibutton2可以继承于同一控件uiview。索引路径可以反映对一个视图在对应的上一层级视图中的显示层级关系,即可以对同一层级的不同视图进行区分。例如,假设上述举例中的控件uibutton1对应的索引路径为0_1_2_1,则表示uiwindow为最高层级视图,视图控制器viewcontroller为上一层级视图uiwindow的第2个子视图,控件uiview为上一层级视图viewcontroller的第3个子视图,控件uibutton为上一层级视图uiview的第2个子视图。视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,从而视图路径和索引路径的结合可以共同完成控件唯一性定位。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,得到如下层级路径:/uiwindow0/viewcontroller1/uiview2/uibutton1。sdk将被触摸视图的视图路径与被埋点视图的视图路径进行匹配,将被触摸视图的索引路径与被埋点视图的索引路径进行匹配。具体的,第三终端利用sdk读取缓存的多个被埋点视图的视图路径和索引路径,将被埋点视图的视图路径和索引路径作为匹配参考对象,将被触摸视图的视图路径和索引路径分别与匹配参考对象进行匹配。同一视图路径中多个视图名称的相对顺序可以反映每个视图在视图路径中的视图深度。为了描述方便,规定视图路径中第一个视图名称对应第一视图深度,第二个视图名称对应第二视图深度,如此递推。为了提高匹配效率,sdk根据层级路径中每个视图的视图深度,将被触摸视图的层级路径与多个被埋点视图的层级路径进行剔除式匹配,逐渐减少被埋点视图作为匹配参考对象的数量,以减少不必要的匹配。具体的,sdk进行第一轮匹配,将被触摸视图层级路径中第一视图深度的视图名称和对应的视图索引分别与多个被埋点视图视图路径中第一视图深度的视图名称和对应的视图索引进行匹配,筛选第一视图深度的视图名称和对应的视图索引分别匹配成功的一个或多个被埋点视图的视图路径。sdk进行第二轮匹配,将被触摸视图的视图路径中第二视图深度的视图名称和对应的视图索引分别与筛选出的多个被埋点视图视图路径中第二视图深度的视图名称和对应的视图索引进行匹配,如此经过多轮匹配,直至被触摸视图的视图名称和视图索引也完成匹配。当存在被埋点视图的视图路径与被触摸视图的视图路径相匹配,且该被埋点视图的索引路径与被触摸视图的索引路径相匹配时,将被触摸视图对应的触摸事件上报至服务器。需要说明的是,接收触摸事件上报信息的服务器与向第三终端下发埋点信息的服务器可以是同一服务器,也可以是不同的服务器。本实施例中,视图路径可以对不同层级视图对应的控件进行区分,索引路径可以对同一层级视图对应的不同控件进行区分,视图路径和索引路径的结合可以对控件准确定位,从而能够提高控件匹配精度,进而可以对控件的触摸事件进行准确上报。在一个实施例中,sdk还包括控件匹配记录脚本。当存在被埋点视图的视图路径与被触摸视图的视图路径相匹配,且该被埋点视图的索引路径与被触摸视图的索引路径相匹配时,表示被触摸视图属于被埋点视图,sdk对被触摸视图添加对应的匹配成功记录。当该控件再次被触摸时,第三终端读取sdk是否存储有该控件对应的匹配成功记录,若存在,则不再重复匹配,直接将该控件对应的触摸事件上报至服务器。本实施例中,若一个控件已经进行过匹配且匹配成功,则对该控件的匹配结果进行记录,当该控件再次被触摸时无需重复匹配,使得第三终端对每个控件只需进行一次匹配,可以提高控件匹配效率,也可以节省第三终端服务资源。在一个实施例中,如图6所示,提供了一种页面展示装置,包括:数据获取模块602,多叉树构建模块604和页面展示模块606。其中:数据获取模块602,用于获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息。多叉树构建模块604,用于按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树。页面展示模块606,用于根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。上述关于页面展示装置的限定可以参加上文中关于页面展示方法的限定,在此不再赘述。上述的页面展示装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。在一个实施例中,提供了一种计算机设备,如图7所示,该计算机设备包括通过系统总线连接的处理器、存储装置和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储装置包括一个或多个非易失性存储介质、一个或多个内存储装置。该服务器的非易失性存储介质存储有操作系统和计算机程序。该计算机设备的内存储装置为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信,比如,接收第一终端发送的应用程序当前页面的页面截图及多个视图的属性信息等。该计算机程序被处理器执行时以实现一种页面展示方法。处理器执行计算机程序时可以执行以下步骤:获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。上述对于计算机设备的限定可以参见上文中对于页面展示方法的具体限定,在此不再赘述。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现计算机程序以下步骤:获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。上述对于计算机可读存储介质的限定可以参见上文中对于页面展示方法的具体限定,在此不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,前述计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1