CN107818163A - 页面展示方法、装置、计算机设备和存储介质 - Google Patents
页面展示方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN107818163A CN107818163A CN201711059899.4A CN201711059899A CN107818163A CN 107818163 A CN107818163 A CN 107818163A CN 201711059899 A CN201711059899 A CN 201711059899A CN 107818163 A CN107818163 A CN 107818163A
- Authority
- CN
- China
- Prior art keywords
- view
- page
- node
- level
- name
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种页面展示方法、装置、计算机设备和存储介质。页面展示方法包括:获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识和视图名称;按照预设规则将应用程序当前页面对应多个视图标识添加至多个具有不同的级别的数组;利用该数组构建应用程序当前页面对应的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。该方法可以准确在页面截图添加埋点边框,提高应用程序当前页面展示效果。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及页面展示方法、装置、计算机设备和存储介质。
背景技术
在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上运行的应用程序可以是原生应用程序(Native APP),也可以是网络应用程序(Web APP),还可以是混合应用程序。第一终端102和第三终端106在应用程序中分别预安装了插件SDK(SoftwareDevelopment Kit,软件开发工具包)。SDK是基于开源的UI(User Interface,用户界面)跨平台框架预先开发生成的脚本。UI跨平台框架可以是React Native框架或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[ID 6]。
服务器将提取到的视图标记为父视图,根据该父视图的层级信息,对页面数据进行遍历,检测是否存在该父视图对应的子视图。当页面数据中存在对应的子视图时,服务器建立次高级别数组,在页面数据中提取该父视图对应的子视图的视图标识,将提取到的视图标识添加至次高级别数组。例如,次高级别数组可以是A2[ID 2,ID 7,ID 8]。
服务器将提取到的子视图作为父视图,在页面数据中查询是否存在对应的子视图。当页面数据中存在对应的子视图时,服务器建立下一级别数组,在页面数据中提取对应的子视图的视图标识,将提取到的视图标识添加至下一级别数组。例如,下一级别数组可以是A3[ID 1,ID 4,ID5]。
服务器将重新提取到的子视图作为父视图,在页面数据中查询是否存在对应的子视图。当页面数据中存在对应的子视图时,服务器按照上述方式建立再下一级别数组。如此循环,直至页面数据中不存在对应的子视图时,得到最低级别数组。例如,最低级别数组可以是A4[ID3,ID 9,ID10,ID 11,ID 12]。
步骤206,查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点。
步骤208,查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点。
步骤210,将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组。
步骤212,利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树。
需要说明的是,步骤206、步骤208、步骤210和步骤212分别与步骤204并列执行。换句话说,服务器每生成一个数组,将对应的数组元素作为节点添加至多叉树中。具体的,在生成最高级别数组后,服务器查询最高级别数组的数组元素对应的视图名称,将最高级别数组的数组元素对应的视图名称标记为多叉树的根节点。例如,如图3所示,多叉树的根节点为最高级别数组A1的数组元素ID 6对应的视图名称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,服务器根据控件的基本属性即可识别该控件是否可以进行触摸操作。Web APP或者混合APP中存在跨平台页面,如H5(HTML5,超文本标记语言)页面。由于跨平台页面是由JS(JavaScript,直译式脚本语言)引擎翻译而成,使得跨平台页面中控件的控件名称并不属于预设集合中的集合元素。即使跨平台页面中的控件实际属于可触摸控件,服务器也可能因为其控件名称不属于预设集合中的集合元素,而将可触摸控件判定为无法进行触摸操作的控件,进而无法对该控件设置埋点。
当根据基本属性将控件识别为不可以进行触摸操作的控件时,尚不能确定该控件不能进行触摸操作,服务器识别控件的控件名称是否属于目标集合中的集合元素。目标集合可以是应用程序开发商预先在服务器配置的。目标集合记录了可以进行触摸操作的多个控件的控件名称。目标集合中的控件名称包括RCTView(一种控件名称)及其子类控件的控件名称。
当控件名称不属于目标集合中的集合元素时,则表示该控件不可以进行触摸操作。当应用程序为Web APP或者混合APP时,第一终端利用SDK获取的属性信息还包括访问属性。访问属性包括isAccessibilityElement(一种属性名称)属性。当控件名称属于目标集合中的集合元素时,服务器获取访问属性的属性值,判断该属性值是否为预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将控件标记为可触摸控件。
服务器按照上述方式生成可触摸控件的层级路径,根据层级路径对可触摸控件添加对应的埋点边框,将添加了埋点边框的页面截图发送至第二终端。
本实施例中,当应用程序为原生APP时,根据基本属性即可对应用程序当前页面中的可触摸控件进行识别;当应用程序为Web APP或者混合APP时,可以进一步根据访问属性对对应用程序当前页面中的可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用,可以提高可触摸控件的识别精度。仅需根据多叉树生成可触摸控件的层级路径,而非全部视图的层级路径,可以减少服务器资源占用。
在一个实施例中,根据层级路径在页面截图对相应的视图添加对应的埋点边框的步骤,包括:对多叉树进行遍历,依次对多叉树中的多个节点进行编号,将编号作为相应节点对应的视图的重叠索引;根据层级路径在页面截图对相应视图添加对应的埋点边框;当多个可触摸的视图对应的埋点边框发生重叠时,获取相应视图对应的重叠索引,根据重叠索引对埋点边框的位置进行调整。
当两个相邻层级的视图均可以响应触摸操作,或弹窗显示时,会出现多个视图发生遮挡的情况。例如,如图4所示,“消息”“联系人”和“动态”三个视图将“聊天好友7”对应的视图遮挡。服务器根据层级路径对可以进行触摸操作的视图添加对应的埋点边框。当多个视图发生遮挡时,多个视图对应的埋点边框也会出现交叉或重叠的问题。
为了解决埋点边框交叉或重叠问题,服务器对应用程序当前页面每个视图分配对应的重叠索引。具体的,服务器对多叉树进行层序遍历,依次对多叉树中的多个节点进行编号,将该编号作为节点对应视图的重叠索引。根据遍历顺序,编号逐渐增大或者逐渐减小,以使服务器根据编号可以区分不同节点。层序遍历是指对多叉树中不同层级的节点从高层级向低层级进行逐层遍历,对同一层级的多个节点进行顺序遍历。
当多个视图对应的埋点边框发生重叠时,服务器获取该视图对应的重叠索引,根据重叠索引对多个视图对应的埋点边框进行展示。假设根据遍历顺序,重叠索引逐渐增大,则服务器将重叠索引大的视图对应的埋点边框置于重叠索引小的视图对应的埋点边框之上进行展示。或者,服务器将重叠索引小的视图对应的埋点边框中,与被重叠索引大的视图对应的埋点边框发生交叉或重叠的部分省略展示。例如,如图4所示,将“聊天好友7”视图对应的埋点边框中,与“消息”“联系人”和“动态”三个视图存在重叠的部分省略展示。
本实施例中,在根据层级路径对埋点边框进行准确定位的基础上,进一步通过对应用程序当前页面每个视图分配对应的重叠索引,对埋点边框的显示层级进行准确定位,避免埋点边框交叉或重叠的问题,从而可以进一步提高对应用程序当前页面的展示效果。
在一个实施例中,如图5所示,提供了一种页面展示方法,以该方法应用于第三终端为例进行说明,具体包括以下步骤:
步骤502,获取应用程序当前页面的页面数据;页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息。
步骤504,将页面数据发送至服务器,使服务器按照预设规则将多个视图标识作为数组元素添加至多个数组,多个数组具有不同的级别,并根据多个视图之间的层级信息将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点,将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组,利用父节点和对应的子节点生成当前页面对应的多叉树,根据多叉树生成多个视图分别对应的层级路径,并根据多叉树生成多个视图分别对应的层级路径,并根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。
步骤506,接收服务器返回的多个被埋点视图对应的层级路径;其中,层级路径是服务器检测到预设终端多个视图对应的埋点操作时根据多叉树生成的。
步骤508,当拦截到视图对应的触摸事件时,根据层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将触摸事件进行上报。
服务器根据第一终端上报的应用程序当前页面的页面数据,构建应用程序当前页面对应的多叉树,并根据应用程序当前页面多个视图的属性信息识别可触摸视图,根据多叉树生成多个可触摸视图分别对应的层级路径,根据层级路径在页面截图对多个可触摸视图添加对应的埋点边框。服务器将设有埋点边框的页面截图发送至第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端在页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。当第二终端获取到埋点边框对应的点击操作时,获取被埋点的视图(以下称“被埋点视图”)的埋点信息,将被埋点视图的埋点信息发送至服务器。被埋点视图包括被埋点控件。服务器根据多叉树生成每个被埋点控件的层级路径。层级路径包括视图路径和索引路径。
当用户通过第三终端对应用程序当前页面的某个控件进行触摸操作时,第三终端利用SDK对被触摸的视图(以下称“被触摸视图”)对应的触摸事件进行拦截,获取被触摸视图的视图路径和索引路径,将被触摸视图的视图路径和索引路径分别与被埋点视图的视图路径和索引路径进行匹配。当被触摸视图与被埋点视图的视图路径与索引路径分别匹配成功时,标识该被触摸视图属于被埋点视图,第三终端利用SDK将被触摸视图对应的触摸事件上报至服务器。
本实施例中,根据应用程序当前页面对应的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以对每个视图进行准确定位,从而可以准确在页面截图添加埋点边框;通过点击埋点边框可以对应用程序设置埋点,终端根据被埋点控件的层级路径可以对被触摸控件的触摸事件进行准准确上报。
在一个实施例中,在获取应用程序当前页面中被触摸控件对应的触摸事件,对触摸事件进行拦截的步骤之前,还包括:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表;将配置表发送至服务器。
当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面向服务器发送可视化埋点请求。服务器根据可视化埋点请求执行预设的埋点准备任务,作好埋点准备后,向第一终端返回截屏请求。截屏请求中携带了空的配置表,配置表记录了多个配置项。配置项包括视图名称及对应的属性名称等,如基本属性和访问属性等。配置表可以是应用程序开发商预先配置在服务器中的。根据截屏请求及携带的配置表,第一终端利用SDK对应用程序当前页面进行解析,获取当前页面中多个视图对应的属性信息,将属性信息对应配置项添加至配置表中,以对配置表进行填写,将填写后的配置表发送至服务器。
服务器在配置表中读取视图的属性信息,根据属性信息生成多个被埋点控件的视图路径和索引路径,将多个被埋点控件的视图路径和索引路径发送至第三终端。
本实施例中,应用程序开发商可以根据需求及时在配置表中添加遗漏的配置项,也可以删除不必要的配置项,如数据量较大的控件背景图片,避免第一终端上报一些冗余的数据,可以对上报的视图的属性信息进行一定程度上的优化,也可以减少第一终端获取视图的属性信息以及填写配置表的时间,进而可以提高服务器对视图路径和索引路径的生成效率。
在一个实施例中,获取应用程序页面的页面数据的步骤,包括:接收服务器发送的截图请求;截图请求携带了上次发送至服务器的页面截图对应的截图标识;对应用程序当前的页面进行截图,得到当前的页面截图,获取当前的页面截图对应的截图标识;将页面数据发送至服务器的步骤,包括:将上次页面截图的截图标识与当前页面截图的截图标识进行对比;当上次页面截图的截图标识与当前页面截图的截图标识不一致时,将当前的页面截图及对应的截图标识发送至服务器。
当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面通过扫描识别码或输入特定手势向服务器发送可视化埋点请求。具体的,第一终端获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。通过扫描识别码即可触发可视化埋点,操作简便,且符合当下用户习惯。或者,第一终端获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。通过输入特定手势即可触发可视化埋点,操作简单;特定手势不同于用户操作第一终端时常用手势,可以减少误操作。容易理解,向服务器发送可视化埋点请求还包括多种实施方式,这里不再一一赘述。
当第一终端向服务器发送可视化埋点请求,以主动触发设置埋点时,服务器向第一终端发送截图请求。或者,当服务器检测到第二终端显示的页面截图关闭时,服务器也向第一终端发送截图请求,以提示第一终端此时可以进行下一次的数据传输。截图请求携带了第一终端上次发送至服务器的页面截图对应的截图标识。截图标识可以唯一标识页面截图,可以是md5值(Message-Digest Algorithm 5,信息-摘要算法5)等。
第一终端利用SDK对应用程序当前页面进行截图,获取应用程序当前页面的页面截图及对应的截图标识。SDK对比截图请求携带的截图标识与当前页面的截图标识是否一致。当截图请求携带的截图标识与当前页面的截图标识不一致时,向服务器发送当前页面的页面截图及对应的多个视图的属性信息。当截图请求携带的截图标识与当前页面的截图标识一致时,第一终端向服务器返回重复截图提示,而不再向服务器发送当前页面的页面数据,可以减少不必要的数据传输。
本实施例中,不同于传统方式无论当前页面对应的页面数据是否已经上传均对当前页面对应的页面数据进行定时上传的方式,第一终端只有在截图请求携带的截图标识与当前页面的截图标识不一致时,才进行页面数据的上传,可以减少不必要的数据重复传输,从而可以减少网络资源的占用。
在一个实施例中,层级路径包括视图路径和索引路径;根据层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将触摸事件进行上报的步骤,包括:获取被触摸视图的视图路径和索引路径;获取服务器发送的多个被埋点视图的视图路径和索引路径;将被触摸视图的视图路径与被埋点视图的视图路径进行匹配,将被触摸视图的索引路径与被埋点视图的索引路径进行匹配;当被触摸视图与被埋点视图的视图路径和索引路径分别匹配成功时,将被触摸视图对应的触摸事件上报至服务器。
第三终端预先对预设类视图进行触摸事件绑定,以当预设类视图被触摸时,可以对被触摸视图对应的触摸事件进行拦截。具体的,第三终端按照预设规则在应用程序对应的安装文件中,查询预设类视图对应的响应函数。预设规则可以是利用***方法,如runtime(一种***方法),也可以是采用AOP编程(面向切面编程)等。安装文件可以是iPA文件(iPhoneApplication,苹果程序应用文件),APK文件(Android Package,安卓程序应用文件)等,包括多个视图对应的响应函数。预设类视图包括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-Only Memory,ROM)等非易失性存储介质。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种页面展示方法,包括:
获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;
按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;
查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;
查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点;
将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;
利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;
根据所述多叉树生成多个视图分别对应的层级路径,根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。
2.根据权利要求1所述的方法,其特征在于,所述按照预设规则将多个视图标识添加至多个数组的步骤,包括:
在页面数据中提取视图名称与预设根视图的视图名称相同的视图对应的视图标识,将视图名称与预设根视图的视图名称相同的视图标记为父视图,将提取到的视图标识添加至最高级别数组;
根据多个视图之间的层级信息对所述页面数据进行遍历,在页面数据中提取所述父视图对应的子视图的视图标识,将所述子视图的视图标识添加至次高级别数组;
将所述子视图作为父视图,在页面数据中查询是否存在对应的子视图;
当页面数据中存在对应的子视图时,将对应的子视图的视图标识添加至下一级别数组,返回将所述子视图作为父视图,在页面数据中查询是否存在对应的子视图的步骤;
当页面数据中不存在对应的子视图时,得到最低级别数组。
3.根据权利要求1所述的方法,其特征在于,所述页面数据还包括多个视图的属性信息;所述最高级别数组中的视图标识对应的视图名称为所述多叉树的根节点;所述层级路径包括视图路径和索引路径;所述根据所述多叉树生成多个视图分别对应的层级路径的步骤,包括:
根据所述属性信息对所述页面截图中的可触摸的视图进行识别;
根据可触摸的视图对应的视图标识,在多叉树中查询对应的节点,将所述节点标记为目标节点;
利用第一预设标识将根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径;
对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,将所述编号作为对应视图的视图索引;
利用第二预设标识将根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。
4.根据权利要求1所述的方法,其特征在于,所述根据所述层级路径在页面截图对相应的视图添加对应的埋点边框的步骤,包括:
对多叉树进行遍历,依次对多叉树中的多个节点进行编号,将所述编号作为相应节点对应的视图的重叠索引;
根据所述层级路径在页面截图对相应视图添加对应的埋点边框;
当多个可触摸的视图对应的埋点边框发生重叠时,获取相应视图对应的重叠索引,根据所述重叠索引对埋点边框的位置进行调整。
5.一种页面展示方法,包括:
获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;
将所述页面数据发送至服务器,使服务器按照预设规则将多个视图标识添加至多个数组,多个数组具有不同的级别,并根据多个视图之间的层级信息将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点,将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点和对应的子节点生成当前页面对应的多叉树,根据所述多叉树生成多个视图分别对应的层级路径,并根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示;
接收服务器返回的多个被埋点视图对应的层级路径;其中,所述层级路径是服务器检测到预设终端多个视图对应的埋点操作时根据所述多叉树生成的;
当拦截到视图对应的触摸事件时,根据所述层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将所述触摸事件进行上报。
6.根据权利要求1所述的方法,其特征在于,所述获取应用程序页面的页面数据的步骤,包括:
接收服务器发送的截图请求;所述截图请求携带了上次发送至服务器的页面截图对应的截图标识;
对应用程序当前的页面进行截图,得到当前的页面截图,获取当前的页面截图对应的截图标识;
所述将所述页面数据发送至服务器的步骤,包括:
将上次页面截图的截图标识与当前页面截图的截图标识进行对比;
当上次页面截图的截图标识与当前页面截图的截图标识不一致时,将当前的页面截图及对应的截图标识发送至服务器。
7.根据权利要求1所述的方法,其特征在于,所述层级路径包括视图路径和索引路径;所述根据层级路径对被触摸视图和被埋点视图进行匹配,并在匹配成功时将所述触摸事件进行上报的步骤,包括:
获取被触摸视图的视图路径和索引路径;
获取服务器发送的多个被埋点视图的视图路径和索引路径;
将所述被触摸视图的视图路径与被埋点视图的视图路径进行匹配,将所述被触摸视图的索引路径与被埋点视图的索引路径进行匹配;
当所述被触摸视图与被埋点视图的视图路径和索引路径分别匹配成功时,将所述被触摸视图对应的触摸事件上报至服务器。
8.一种页面展示装置,包括:
数据获取模块,用于获取应用程序当前页面的页面数据;所述页面数据包括页面截图以及多个视图的视图标识、视图名称和层级信息;
多叉树构建模块,用于按照预设规则将多个视图标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据多个视图之间的层级信息,将次高级别数组中的视图标识对应的视图名称标记为所述父节点的子节点;将所述子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成应用程序当前页面对应的多叉树;
页面展示模块,用于根据所述多叉树生成多个视图分别对应的层级路径,根据所述层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示。
9.一种计算机设备,包括存储装置及处理器,所述存储装置中储存有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤计算机程序计算机程序。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059899.4A CN107818163B (zh) | 2017-11-01 | 2017-11-01 | 页面展示方法、装置、计算机设备和存储介质 |
PCT/CN2017/112696 WO2019085085A1 (zh) | 2017-11-01 | 2017-11-23 | 页面展示方法、装置、计算机设备和存储介质 |
US16/097,872 US11163851B2 (en) | 2017-11-01 | 2017-11-23 | Method, apparatus, computer device and storage medium of page displaying |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059899.4A CN107818163B (zh) | 2017-11-01 | 2017-11-01 | 页面展示方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107818163A true CN107818163A (zh) | 2018-03-20 |
CN107818163B CN107818163B (zh) | 2019-03-29 |
Family
ID=61604638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711059899.4A Active CN107818163B (zh) | 2017-11-01 | 2017-11-01 | 页面展示方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11163851B2 (zh) |
CN (1) | CN107818163B (zh) |
WO (1) | WO2019085085A1 (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763062A (zh) * | 2018-05-09 | 2018-11-06 | 平安普惠企业管理有限公司 | 埋点名称的过滤方法及终端设备 |
CN108776607A (zh) * | 2018-05-07 | 2018-11-09 | 深圳壹账通智能科技有限公司 | 截图生成方法、装置、计算机设备和存储介质 |
CN108920354A (zh) * | 2018-05-07 | 2018-11-30 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 埋点管理方法、装置、计算机设备和存储介质 |
CN109508282A (zh) * | 2018-09-25 | 2019-03-22 | 平安科技(深圳)有限公司 | 埋点标识的设置方法及装置、计算机存储介质、电子设备 |
CN110020332A (zh) * | 2017-07-25 | 2019-07-16 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN110362767A (zh) * | 2018-04-09 | 2019-10-22 | 北京京东尚科信息技术有限公司 | 埋点处理方法、装置、***及计算机可读存储介质 |
CN110362371A (zh) * | 2019-06-19 | 2019-10-22 | 北京百度网讯科技有限公司 | 视图层级的控制方法及***、计算机设备及可读介质 |
CN110389760A (zh) * | 2018-04-19 | 2019-10-29 | 沪江教育科技(上海)股份有限公司 | 动态页面的生成方法、装置、存储介质及电子设备 |
CN110399067A (zh) * | 2019-07-31 | 2019-11-01 | 江苏满运软件科技有限公司 | 可视化埋点方法、装置、电子设备、存储介质 |
CN110489187A (zh) * | 2018-05-15 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 页面刷新方法、装置、存储介质和计算机设备 |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN110489105A (zh) * | 2019-07-19 | 2019-11-22 | 厦门美柚信息科技有限公司 | 一种可视化埋点的设置方法、***、设备及其存储介质 |
CN110532283A (zh) * | 2019-09-03 | 2019-12-03 | 衢州学院 | 一种基于Hadoop集群架构的智慧城市大数据处理*** |
CN110554892A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN110650091A (zh) * | 2019-08-14 | 2020-01-03 | 平安普惠企业管理有限公司 | 路由配置信息处理方法、装置、计算机设备和存储介质 |
CN110866205A (zh) * | 2018-08-27 | 2020-03-06 | 北京易数科技有限公司 | 用于存储信息的方法和装置 |
CN111143206A (zh) * | 2019-12-19 | 2020-05-12 | 五八有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN111158998A (zh) * | 2019-12-27 | 2020-05-15 | 北京达佳互联信息技术有限公司 | 一种埋点数据的显示方法及装置 |
CN111581567A (zh) * | 2019-02-18 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 一种页面生成方法及装置 |
CN111767002A (zh) * | 2019-05-20 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
CN112711400A (zh) * | 2020-12-31 | 2021-04-27 | 北京字跳网络技术有限公司 | 视图的处理方法、设备、存储介质及计算机程序产品 |
CN112765526A (zh) * | 2021-02-05 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 一种页面截图方法、装置、终端设备及介质 |
CN112817817A (zh) * | 2021-01-25 | 2021-05-18 | 微民保险代理有限公司 | 埋点信息查询方法、装置、计算机设备和存储介质 |
CN113900760A (zh) * | 2021-10-26 | 2022-01-07 | 广州博冠信息科技有限公司 | 一种弹窗展示方法和装置 |
CN114489398A (zh) * | 2021-12-31 | 2022-05-13 | 科大讯飞股份有限公司 | 页面内容分享方法及分享终端、订阅终端 |
CN114637563A (zh) * | 2022-03-08 | 2022-06-17 | 维沃移动通信有限公司 | 信息输入方法及其装置 |
CN114997186A (zh) * | 2021-09-02 | 2022-09-02 | 荣耀终端有限公司 | 翻译控件的控制方法及电子设备 |
CN115686515A (zh) * | 2022-10-31 | 2023-02-03 | 广东云徙智能科技有限公司 | 参数可视化配置界面生成方法、装置、介质和电子设备 |
CN116049588A (zh) * | 2022-12-30 | 2023-05-02 | 格兰菲智能科技有限公司 | 页面加载方法、装置、计算机设备和存储介质 |
CN116521039A (zh) * | 2023-04-28 | 2023-08-01 | 成都赛力斯科技有限公司 | 被覆盖视图的移动方法、装置、电子设备及可读存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042388B2 (en) * | 2018-06-03 | 2021-06-22 | Apple Inc. | Framework providing application programming interface for user interfaces and animation |
CN112883250A (zh) * | 2019-11-29 | 2021-06-01 | 阿里巴巴集团控股有限公司 | 生成埋点标识的方法、装置和埋点的方法 |
CN114020589B (zh) * | 2020-07-15 | 2024-07-02 | 腾讯科技(深圳)有限公司 | 埋点处理方法、装置、计算机设备和存储介质 |
CN113765792B (zh) * | 2020-10-28 | 2023-05-30 | 北京沃东天骏信息技术有限公司 | 一种生成导航信息的方法、装置和存储介质 |
CN114721915B (zh) * | 2021-01-04 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 埋点方法和装置 |
CN113051012B (zh) * | 2021-03-18 | 2022-12-02 | 平安普惠企业管理有限公司 | 基于列表视图的数据加载方法、装置、设备及介质 |
CN113472858B (zh) * | 2021-06-10 | 2023-09-29 | 北京达佳互联信息技术有限公司 | 埋点数据处理方法、装置及电子设备 |
CN113377712B (zh) * | 2021-06-29 | 2024-02-23 | 上海通天晓信息技术有限公司 | 埋点数据查询方法、装置、设备及计算机可读存储介质 |
CN114995861B (zh) * | 2022-08-02 | 2022-09-30 | 中航信移动科技有限公司 | 一种基于weex的应用程序更新方法、存储介质及电子设备 |
CN115361418A (zh) * | 2022-08-18 | 2022-11-18 | 中国第一汽车股份有限公司 | 一种车载分布式动态数据埋点采集方法、车辆和云服务器 |
CN115408302B (zh) * | 2022-10-31 | 2023-01-10 | 天津华来科技股份有限公司 | 一种app多语文案测试方法及*** |
CN115687827B (zh) * | 2022-11-15 | 2023-08-25 | 中电金信软件有限公司 | 原生页面与h5页面路径连通方法、装置、设备及介质 |
CN115510352B (zh) * | 2022-11-15 | 2023-05-05 | 中国外运股份有限公司 | 用户行为采集方法、装置、电子设备及存储介质 |
CN117707453A (zh) * | 2023-08-15 | 2024-03-15 | 荣耀终端有限公司 | 一种节点信息的读取方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN106776247A (zh) * | 2016-11-23 | 2017-05-31 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及*** |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
CN106934006A (zh) * | 2017-03-08 | 2017-07-07 | 中国银行股份有限公司 | 基于多叉树模型的页面推荐方法及装置 |
CN107562620A (zh) * | 2017-08-24 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种埋点自动设置方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313282A1 (en) * | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
EP2299358A1 (en) * | 2005-07-08 | 2011-03-23 | Corizon Limited | Method and apparatus for user interface modification |
US20110307243A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | Multilingual runtime rendering of metadata |
EP2599013A1 (en) * | 2010-07-30 | 2013-06-05 | Hewlett-Packard Development Company, L.P. | Visual separator detection in web pages by using code analysis |
CN103518183B (zh) * | 2011-04-07 | 2017-05-17 | 惠普发展公司,有限责任合伙企业 | 图形对象分类 |
US20140047413A1 (en) * | 2012-08-09 | 2014-02-13 | Modit, Inc. | Developing, Modifying, and Using Applications |
US9665617B1 (en) * | 2014-04-16 | 2017-05-30 | Google Inc. | Methods and systems for generating a stable identifier for nodes likely including primary content within an information resource |
EP3138029A4 (en) * | 2014-04-29 | 2017-04-05 | Wix.com Ltd. | System and method for the creation and use of visually-diverse high-quality dynamic layouts |
US9690764B1 (en) * | 2014-12-12 | 2017-06-27 | Amazon Technologies, Inc. | Delivery and display of page previews using shadow DOM |
US10521494B2 (en) * | 2016-02-02 | 2019-12-31 | Adobe Inc. | Content to layout template mapping and transformation |
-
2017
- 2017-11-01 CN CN201711059899.4A patent/CN107818163B/zh active Active
- 2017-11-23 WO PCT/CN2017/112696 patent/WO2019085085A1/zh active Application Filing
- 2017-11-23 US US16/097,872 patent/US11163851B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN106776247A (zh) * | 2016-11-23 | 2017-05-31 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及*** |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
CN106934006A (zh) * | 2017-03-08 | 2017-07-07 | 中国银行股份有限公司 | 基于多叉树模型的页面推荐方法及装置 |
CN107562620A (zh) * | 2017-08-24 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种埋点自动设置方法和装置 |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020332A (zh) * | 2017-07-25 | 2019-07-16 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN110020332B (zh) * | 2017-07-25 | 2021-06-04 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN110362767A (zh) * | 2018-04-09 | 2019-10-22 | 北京京东尚科信息技术有限公司 | 埋点处理方法、装置、***及计算机可读存储介质 |
CN110389760A (zh) * | 2018-04-19 | 2019-10-29 | 沪江教育科技(上海)股份有限公司 | 动态页面的生成方法、装置、存储介质及电子设备 |
CN108776607A (zh) * | 2018-05-07 | 2018-11-09 | 深圳壹账通智能科技有限公司 | 截图生成方法、装置、计算机设备和存储介质 |
CN108920354A (zh) * | 2018-05-07 | 2018-11-30 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 埋点管理方法、装置、计算机设备和存储介质 |
CN108920354B (zh) * | 2018-05-07 | 2021-01-01 | 未鲲(上海)科技服务有限公司 | 埋点管理方法、装置、计算机设备和存储介质 |
CN108763062A (zh) * | 2018-05-09 | 2018-11-06 | 平安普惠企业管理有限公司 | 埋点名称的过滤方法及终端设备 |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN110489187B (zh) * | 2018-05-15 | 2021-09-24 | 腾讯科技(深圳)有限公司 | 页面刷新方法、装置、存储介质和计算机设备 |
CN110489187A (zh) * | 2018-05-15 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 页面刷新方法、装置、存储介质和计算机设备 |
CN110554892A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN110866205B (zh) * | 2018-08-27 | 2023-05-02 | 北京易数科技有限公司 | 用于存储信息的方法和装置 |
CN110866205A (zh) * | 2018-08-27 | 2020-03-06 | 北京易数科技有限公司 | 用于存储信息的方法和装置 |
CN109508282A (zh) * | 2018-09-25 | 2019-03-22 | 平安科技(深圳)有限公司 | 埋点标识的设置方法及装置、计算机存储介质、电子设备 |
CN111581567B (zh) * | 2019-02-18 | 2023-03-28 | 阿里巴巴集团控股有限公司 | 一种页面生成方法及装置 |
CN111581567A (zh) * | 2019-02-18 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 一种页面生成方法及装置 |
CN111767002A (zh) * | 2019-05-20 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
CN111767002B (zh) * | 2019-05-20 | 2022-03-04 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN110362371B (zh) * | 2019-06-19 | 2022-07-22 | 北京百度网讯科技有限公司 | 视图层级的控制方法、装置及***、计算机设备及介质 |
CN110362371A (zh) * | 2019-06-19 | 2019-10-22 | 北京百度网讯科技有限公司 | 视图层级的控制方法及***、计算机设备及可读介质 |
CN110489105A (zh) * | 2019-07-19 | 2019-11-22 | 厦门美柚信息科技有限公司 | 一种可视化埋点的设置方法、***、设备及其存储介质 |
CN110399067A (zh) * | 2019-07-31 | 2019-11-01 | 江苏满运软件科技有限公司 | 可视化埋点方法、装置、电子设备、存储介质 |
CN110650091A (zh) * | 2019-08-14 | 2020-01-03 | 平安普惠企业管理有限公司 | 路由配置信息处理方法、装置、计算机设备和存储介质 |
CN110650091B (zh) * | 2019-08-14 | 2022-08-02 | 平安普惠企业管理有限公司 | 路由配置信息处理方法、装置、计算机设备和存储介质 |
CN110532283A (zh) * | 2019-09-03 | 2019-12-03 | 衢州学院 | 一种基于Hadoop集群架构的智慧城市大数据处理*** |
CN111143206B (zh) * | 2019-12-19 | 2024-03-22 | 五八有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN111143206A (zh) * | 2019-12-19 | 2020-05-12 | 五八有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN111158998A (zh) * | 2019-12-27 | 2020-05-15 | 北京达佳互联信息技术有限公司 | 一种埋点数据的显示方法及装置 |
CN112711400A (zh) * | 2020-12-31 | 2021-04-27 | 北京字跳网络技术有限公司 | 视图的处理方法、设备、存储介质及计算机程序产品 |
CN112817817A (zh) * | 2021-01-25 | 2021-05-18 | 微民保险代理有限公司 | 埋点信息查询方法、装置、计算机设备和存储介质 |
CN112817817B (zh) * | 2021-01-25 | 2023-07-07 | 微民保险代理有限公司 | 埋点信息查询方法、装置、计算机设备和存储介质 |
CN112765526A (zh) * | 2021-02-05 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 一种页面截图方法、装置、终端设备及介质 |
CN114997186A (zh) * | 2021-09-02 | 2022-09-02 | 荣耀终端有限公司 | 翻译控件的控制方法及电子设备 |
CN113900760B (zh) * | 2021-10-26 | 2024-05-28 | 广州博冠信息科技有限公司 | 一种弹窗展示方法和装置 |
CN113900760A (zh) * | 2021-10-26 | 2022-01-07 | 广州博冠信息科技有限公司 | 一种弹窗展示方法和装置 |
CN114489398A (zh) * | 2021-12-31 | 2022-05-13 | 科大讯飞股份有限公司 | 页面内容分享方法及分享终端、订阅终端 |
CN114637563A (zh) * | 2022-03-08 | 2022-06-17 | 维沃移动通信有限公司 | 信息输入方法及其装置 |
CN114637563B (zh) * | 2022-03-08 | 2024-05-28 | 维沃移动通信有限公司 | 信息输入方法及其装置 |
CN115686515A (zh) * | 2022-10-31 | 2023-02-03 | 广东云徙智能科技有限公司 | 参数可视化配置界面生成方法、装置、介质和电子设备 |
CN115686515B (zh) * | 2022-10-31 | 2023-07-25 | 广东云徙智能科技有限公司 | 参数可视化配置界面生成方法、装置、介质和电子设备 |
CN116049588A (zh) * | 2022-12-30 | 2023-05-02 | 格兰菲智能科技有限公司 | 页面加载方法、装置、计算机设备和存储介质 |
CN116521039B (zh) * | 2023-04-28 | 2024-04-02 | 重庆赛力斯凤凰智创科技有限公司 | 被覆盖视图的移动方法、装置、电子设备及可读存储介质 |
CN116521039A (zh) * | 2023-04-28 | 2023-08-01 | 成都赛力斯科技有限公司 | 被覆盖视图的移动方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11163851B2 (en) | 2021-11-02 |
CN107818163B (zh) | 2019-03-29 |
US20210256088A1 (en) | 2021-08-19 |
WO2019085085A1 (zh) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818163B (zh) | 页面展示方法、装置、计算机设备和存储介质 | |
CN107818162B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
CN107861655B (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
US9451009B2 (en) | Methods and system to create applications and distribute applications to a remote device | |
US11150893B2 (en) | Collaborative software development tool for resolving potential code-change conflicts in real time | |
CN104615731B (zh) | 一种二维码展现方法及*** | |
WO2018177251A1 (zh) | 应用程序处理方法、计算机设备和存储介质 | |
CN106682028A (zh) | 获取网页应用的方法、装置及*** | |
US9286273B1 (en) | Method and system for implementing a website builder | |
US11593074B2 (en) | System, method, and apparatus for data-centric networked application development services | |
CN107872534B (zh) | 信息推送方法、装置、服务器及可读存储介质 | |
CN112464623A (zh) | Rpa流程文件生成方法、装置、计算机设备和存储介质 | |
CN107609122A (zh) | 广告屏蔽规则的更新方法、装置、服务器和存储介质 | |
CN103530338A (zh) | 在计算设备上进行页面渲染的框架及生成页面的方法 | |
CN109614565A (zh) | 网页生成方法与装置 | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN113407284A (zh) | 导航界面的生成方法、装置、存储介质及电子设备 | |
CN105915615A (zh) | 一种在移动设备中显示应用信息的方法和装置 | |
US10210001B2 (en) | Automatic execution of objects in a user interface | |
CN106817618A (zh) | 弹窗显示方法及装置、包括该弹窗显示装置的电子设备 | |
CN112752132A (zh) | 漫画图片弹幕显示方法、装置、介质及电子设备 | |
CN105450501A (zh) | 设置定制化回复功能的方法及装置 | |
CN110908647B (zh) | 一种积木式编程的对象变量呈现方法、装置、终端及存储介质 | |
CN114817379A (zh) | 基于Qunee的配置项关系可视化方法、***、设备及介质 | |
CN113961835A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1250398 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |