动态页面中的埋点处理方法、装置和计算机设备转让专利

申请号 : CN201711105729.5

文献号 : CN107832218B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡志成

申请人 : 平安科技(深圳)有限公司

摘要 :

本申请涉及一种动态页面中的埋点处理方法、装置和计算机设备,所述方法包括:拉取应用程序多个页面的埋点;所述页面包括动态页面,所述埋点包括静态埋点和动态埋点;捕捉动态页面中的埋点所对应的触摸事件;当被触摸的埋点为动态埋点时,获取所述动态埋点对应动态标识,根据所述动态标识获取对应的路径;当被触摸的埋点为静态埋点时,获取所述静态埋点对应的索引标识,根据所述索引标识获取对应的路径;利用所述动态标识对应的路径将所述动态埋点的触摸事件上传至服务器,以及利用所述索引标识对应的路径将所述静态埋点的触摸事件上传至服务器。采用本方法能够确保动态页面中的每个埋点的路径准确无误。

权利要求 :

1.一种动态页面中的埋点处理方法,包括:

通过应用程序检测第一终端被摇晃的速度;

当所述第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;

绘制当前页面对应的视图树,以及对所述当前页面进行截图;

将所述视图树与所述当前页面的截图传输至所述第二终端,以使得所述第二终端根据所述截图与所述视图树在当前页面中设置埋点;拉取应用程序多个页面的埋点;所述页面包括动态页面,所述埋点包括静态埋点和动态埋点;

捕捉动态页面中的埋点所对应的触摸事件;

当被触摸的埋点为动态埋点时,获取所述动态埋点对应动态标识,根据所述动态标识获取对应的路径;

当被触摸的埋点为静态埋点时,获取所述静态埋点对应的索引标识,根据所述索引标识获取对应的路径;

利用所述动态标识对应的路径将所述动态埋点的触摸事件上传至服务器,以及利用所述索引标识对应的路径将所述静态埋点的触摸事件上传至服务器。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;

获取所述埋点类别中剩余埋点对应的动态标识;

当剩余埋点被触摸时,根据所述剩余埋点对应的动态标识获取对应的路径;

根据所述动态标识对应的路径将生成埋点的触摸事件上传至服务器。

3.根据权利要求1所述的方法,其特征在于,所述动态页面中包括多个滑动视图;所述方法还包括:监测所述动态页面的变化,获取当前显示的滑动视图的当前视图标识;

根据所述当前视图标识获取对应的埋点,将所述埋点加载至所述滑动视图;

获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;

根据所述相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。

4.根据权利要求1所述的方法,其特征在于,所述应用程序包括React-Native应用程序;所述页面中包括控件;在所述拉取应用程序多个页面的埋点的步骤之前,还包括:通过Native层获取控件的触摸事件,将所述触摸事件发送至React层进行处理;

在React层将处理后的触摸事件返回至Native层后,对所述触摸事件的处理状态进行修改;

根据修改后的处理状态,将所述触摸事件继续传递至被触摸的控件;

获取所述被触摸的控件的名称和路径,将所述被触摸的控件的名称和路径发送至第二终端,以使得所述第二终端根据所述被触摸的控件的名称和路径设置埋点。

5.一种动态页面中的埋点处理装置,其特征在于,包括:通信连接模块,用于通过应用程序检测第一终端被摇晃的速度;当所述第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;

同步模块,用于绘制当前页面对应的视图树,以及对所述当前页面进行截图;将所述视图树与所述当前页面的截图传输至所述第二终端,以使得所述第二终端根据所述截图与所述视图树在当前页面中设置埋点;

埋点拉取模块,用于拉取应用程序多个页面的埋点;所述页面包括动态页面,所述埋点包括静态埋点和动态埋点;

事件捕捉模块,用于捕捉动态页面中的埋点所对应的触摸事件;

路径获取模块,用于当被触摸的埋点为动态埋点时,获取所述动态埋点对应动态标识,根据所述动态标识获取对应的路径;当被触摸的埋点为静态埋点时,获取所述静态埋点对应的索引标识,根据所述索引标识获取对应的路径;

通信模块,用于利用所述动态标识对应的路径将所述动态埋点的触摸事件上传至服务器,以及利用所述索引标识对应的路径将所述静态埋点的触摸事件上传至服务器。

6.根据权利要求5所述的装置,其特征在于,所述路径获取模块还用于当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;获取所述埋点类别中剩余埋点对应的动态标识;当剩余埋点被触摸时,根据所述剩余埋点对应的动态标识获取对应的路径;所述上传模块还用于根据所述动态标识对应的路径将生成埋点的触摸事件上传至服务器。

7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

说明书 :

动态页面中的埋点处理方法、装置和计算机设备

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种动态页面中的埋点处理方法、装置和计算机设备。

背景技术

[0002] 通过在APP(Application,应用程序)中设置埋点,利用埋点采集用户行为已经成为目前用户分析的一种常见方式。APP的页面中包括静态页面和动态页面。静态页面的内容基本上不会发生变化。静态页面中的埋点设置好之后,可以顺利采集到相应的埋点数据。而动态页面中的内容可以随着时间或用户的操作而发生变化,动态页面中的埋点会发生变化。
[0003] 在传统的方式中,每个页面都可以视为一颗视图树,埋点可以视为视图树中的节点。每个节点可以有相应的路径,采集到的数据可以按照其路径被上传。但是对于在动态页面而言,由于动态页面中的埋点是可以发生变化的,埋点变化之后,视图树中的节点所对应的路径可能会发生错乱,导致上传后的数据与埋点不一致。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种能够确保动态页面中的每个埋点的路径准确无误的动态页面中的埋点处理方法、装置、计算机设备和存储介质。
[0005] 一种动态页面中的埋点处理方法,包括:
[0006] 拉取应用程序多个页面的埋点;所述页面包括动态页面,所述埋点包括静态埋点和动态埋点;
[0007] 捕捉动态页面中的埋点所对应的触摸事件;
[0008] 当被触摸的埋点为动态埋点时,获取所述动态埋点对应动态标识,根据所述动态标识获取对应的路径;
[0009] 当被触摸的埋点为静态埋点时,获取所述静态埋点对应的索引标识,根据所述索引标识获取对应的路径;
[0010] 利用所述动态标识对应的路径将所述动态埋点的触摸事件上传至服务器,以及利用所述索引标识对应的路径将所述静态埋点的触摸事件上传至服务器。
[0011] 在其中一个实施例中,所述方法还包括:
[0012] 当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;
[0013] 获取所述埋点类别中剩余埋点对应的动态标识;
[0014] 当剩余埋点被触摸时,根据所述剩余埋点对应的动态标识获取对应的路径;
[0015] 根据所述动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0016] 在其中一个实施例中,所述动态页面中包括多个滑动视图;所述方法还包括:
[0017] 监测所述动态页面的变化,获取当前显示的滑动视图的当前视图标识;
[0018] 根据所述当前视图标识获取对应的埋点,将所述埋点加载至所述滑动视图;
[0019] 获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;
[0020] 根据所述相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。
[0021] 在其中一个实施例中,在所述拉取应用程序多个页面的埋点的步骤之前,还包括:
[0022] 通过应用程序检测第一终端被摇晃的速度;
[0023] 当所述第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;
[0024] 绘制当前页面对应的视图树,以及对所述当前页面进行截图;
[0025] 将所述视图树与所述当前页面的截图传输至所述第二终端,以使得所述第二终端根据所述截图与所述视图树在当前页面中设置埋点。
[0026] 在其中一个实施例中,所述应用程序包括React-Native应用程序;所述页面中包括控件;在所述拉取应用程序多个页面的埋点的步骤之前,还包括:
[0027] 通过Native层获取控件的触摸事件,将所述触摸事件发送至React层进行处理;
[0028] 在React层将处理后的触摸事件返回至Native层后,对所述触摸事件的处理状态进行修改;
[0029] 根据修改后的处理状态,将所述触摸事件继续传递至被触摸的控件;
[0030] 获取所述被触摸的控件的名称和路径,将所述被触摸的控件的名称和路径发送至第二终端,以使得所述第二终端根据所述被触摸的控件的名称和路径设置埋点。
[0031] 一种动态页面中的埋点处理装置,包括:
[0032] 埋点拉取模块,用于拉取应用程序多个页面的埋点;所述页面包括动态页面,所述埋点包括静态埋点和动态埋点;
[0033] 事件捕捉模块,用于捕捉动态页面中的埋点所对应的触摸事件;
[0034] 路径获取模块,用于当被触摸的埋点为动态埋点时,获取所述动态埋点对应动态标识,根据所述动态标识获取对应的路径;当被触摸的埋点为静态埋点时,获取所述静态埋点对应的索引标识,根据所述索引标识获取对应的路径;
[0035] 通信模块,用于利用所述动态标识对应的路径将所述动态埋点的触摸事件上传至服务器,以及利用所述索引标识对应的路径将所述静态埋点的触摸事件上传至服务器。
[0036] 在其中一个实施例中,所述路径获取模块还用于当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;获取所述埋点类别中剩余埋点对应的动态标识;当剩余埋点被触摸时,根据所述剩余埋点对应的动态标识获取对应的路径;所述上传模块还用于根据所述动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0037] 在其中一个实施例中,所述装置还包括:
[0038] 通信连接模块,用于通过应用程序检测第一终端被摇晃的速度;当所述第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;
[0039] 同步模块,用于绘制当前页面对应的视图树,以及对所述当前页面进行截图;将所述视图树与所述当前页面的截图传输至所述第二终端,以使得所述第二终端根据所述截图与所述视图树在当前页面中设置埋点。
[0040] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项方法的步骤。
[0041] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
[0042] 上述动态页面中的埋点处理方法、装置、计算机设备和存储介质,应用程序的多个页面预先设置了埋点,捕捉动态页面中的埋点的触摸事件。由于动态埋点被预先设置了唯一的动态标识,当被触摸的埋点为动态埋点时,第一终端可以获取所述动态埋点对应动态标识,根据动态标识获取到相应路径,从而通过该路径将动态埋点的触摸事件上传至服务器。当被触摸的埋点为静态埋点时,第一终端可以获取所述静态埋点对应的索引标识,根据索引标识获取到相应路径,从而利用该路径将静态埋点的触摸事件上传至服务器。由于动态标识是动态埋点的唯一标识,而且动态不会对静态埋点的索引标识产生影响,由此实现了应用程序动态页面中的每个埋点的路径准确无误。

附图说明

[0043] 图1为一个实施例中动态页面中的埋点处理方法的应用场景图;
[0044] 图2为一个实施例中动态页面中的埋点处理方法的流程图;
[0045] 图3为一个实施例中动态页面中的埋点处理装置的框图;
[0046] 图4为一个实施例中计算机设备的框图。

具体实施方式

[0047] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0048] 本申请提供动态页面中的埋点处理方法,可以应用于如图1所示的应用环境中。第一终端102通过网络与服务器104进行通信连接。第二终端106通过网络与服务器104进行通信连接。其中,第一终端102可以是移动终端,例如,平板电脑、智能手机、个人数字助理以及可穿戴设备等。第二终端可以是台式电脑和笔记本电脑等。第二终端106对应用程序的多个页面设置了埋点。第二终端106将设置后的埋点数据上传至服务器104。第一终端102上安装了应用程序,当应用程序启动时,第一终端102在服务器104上拉取相应的埋点数据。埋点数据可以包括埋点名称、埋点类别、静态埋点对应的索引标识以及动态埋点对应的动态标识等。第一终端102通过应用程序捕捉用户对页面中的操作,当捕捉到动态页面中的埋点被触摸时,获取该埋点对应的触摸事件。当被触摸的埋点为动态埋点时,第一终端102获取动态埋点对应动态标识,根据动态标识获取对应的路径。当被触摸的埋点为静态埋点时,第一终端102获取静态埋点对应的索引标识,根据索引标识获取对应的路径。第一终端102利用动态标识对应的路径将动态埋点的触摸事件上传至服务器104,第一终端102利用索引标识对应的路径将静态埋点的触摸事件上传至服务器104。由于动态标识是动态埋点的唯一标识,而且动态不会对静态埋点的索引标识产生影响,因此能够确保动态页面中的每个埋点的路径是准确无误的。
[0049] 在一个实施例中,如图2所示,提供了一种动态页面中的埋点处理方法,以该方法应用于图1中的第一终端为例进行说明,具体包括以下步骤:
[0050] 步骤202,拉取应用程序多个页面的埋点;页面包括动态页面,埋点包括静态埋点和动态埋点。
[0051] 步骤204,捕捉动态页面中的埋点所对应的触摸事件。
[0052] 第一终端中安装了应用程序,应用程序包括多个页面,页面包括静态页面和动态页面。页面中可以包含控件、文本、图片或视频等内容。每个页面可以视为一颗视图树,控件、文本、图片或视频等可以视为视图树中的节点。视图树中的每个节点可以被编号,使得每个节点都可以有相应的索引标识,例如,索引标识可以是索引编号。由于动态页面中的内容可以随着时间或用户操作发生变化,由此会使得动态页面的视图树中的节点发生变化。例如,动态页面在经过预设时间后会新增一个“注册”控件。视图树中的节点可以被设置为页面中的埋点。
[0053] 对于静态页面中不会发生变化的埋点可以称为静态埋点,对于动态页面中会发生变化的埋点(如新增或被删除的埋点)可以称为动态埋点。开发人员通过第二终端可以对静态埋点以及动态埋点进行可视化设置。第二终端将设置后的埋点数据上传至服务器。应用程序在启动时,可以通过网络从服务器中拉取多个页面的埋点数据。埋点数据可以包括埋点名称、埋点类别、静态埋点对应的索引标识以及动态埋点对应的动态标识等。
[0054] 第一终端通过应用程序捕捉用户对页面中的操作,当捕捉到动态页面中的埋点被触摸时,获取该埋点对应的触摸事件。
[0055] 步骤206,当被触摸的埋点为动态埋点时,获取动态埋点对应动态标识,根据动态标识获取对应的路径。
[0056] 步骤208,当被触摸的埋点为静态埋点时,获取静态埋点对应的索引标识,根据索引标识获取对应的路径。
[0057] 步骤210,利用动态标识对应的路径将动态埋点的触摸事件上传至服务器,以及利用索引标识对应的路径将静态埋点的触摸事件上传至服务器。
[0058] 在传统的方式中,页面的视图树中每个节点可以被设置相应的索引标识。每个索引标识具有唯一的路径,第一终端可以通过该路径将埋点对应的触摸事件上传至服务器。例如,某动态页面中的埋点类型为控件的节点有3个,则这3个节点相应的索引标识可以依次为0、1、2。这3个节点可以被设置为静态埋点。当静态埋点被触摸时,第一终端生成相应的事件消息。第一终端获取该静态埋点对应的索引标识,根据索引标识查询该静态埋点对应的路径,将该静态埋点的事件消息按照其路径上传至服务器。如果动态页面中随着用户的操作,增加了一个节点,该节点为动态埋点。新增节点(即动态埋点)在视图树中插入在0节点和1节点之间,则第一终端默认新增节点的索引标识为1,原1节点和原2节点的索引标识相应的变为2和3。由此使得新增节点(即动态埋点)、原1节点和原2节点的路径发生错乱。从而使得新增节点(即动态埋点)、原1节点和原2节点的上传后的数据与埋点不一致。如果动态页面中随着用户的操作删除了一个节点,被删除的节点也是动态埋点。假设该动态埋点的索引标识为1,则删除之后,第一终端默认原2节点索引标识变为1,原2节点的路径也会发生错乱。
[0059] 本实施例中,研发人员可以通过第二终端对应用程序每个页面中的多个节点预先进行了分类,以此得到多个埋点类别。例如,控件可以为一类别,文本可以为一类别,图片可以为一类别,视频可以为一类别。每个埋点类别都被设置了相应的索引标识。对于动态页面而言,每个埋点类别中的节点都可以包含动态埋点。为了确保每个埋点的路径准确无误,第二终端对每个动态埋点设置了唯一的动态标识。动态标识是与索引标识不同的标识,动态标识可以是埋点名称,也可以是其他标记。动态标识不会发生变化,也不会引起索引标识发生变化。也就是说,对于视图树而言,各个节点的索引标识不会随着动态埋点的变化而变化。视图树中的索引标识可以是稳定的。
[0060] 动态页面中被触摸的埋点可以是动态埋点,也可以是静态埋点,也可以是动态埋点以及静态埋点。第一终端捕捉到被触摸的埋点后,根据被触摸的埋点的名称获取对应的埋点类别。当被触摸的埋点为动态埋点时,第一终端在相应的埋点类别中进行遍历,得到动态埋点的动态标识。第一终端根据动态标识获取对应的路径。当被触摸的埋点为静态埋点时,第一终端在相应的埋点类别中进行遍历,得到静态埋点的索引标识。第一终端利用动态标识对应的路径将动态埋点的事件消息上传至服务器,第一终端利用索引标识对应的路径将静态埋点的事件消息上传至服务器。由于动态标识不会对索引标识造成影响,因此不论被触摸的静态埋点与被触摸的动态埋点是否属于同一类别,第一终端都可以按照被触摸的埋点类别获取到相应的路径。由于静态埋点的索引标识不会被动态埋点的动态标识所影响,不仅使得动态页面中的每个埋点的路径准确无误,而且使得静态页面中的每个埋点的路径准确无误。因此能够确保每个埋点的路径是准确无误的,从而实现了应用程序中每个页面中的埋点路径准确无误。
[0061] 本实施例中,应用程序的多个页面预先设置了埋点,捕捉动态页面中的埋点的触摸事件。由于动态埋点被预先设置了唯一的动态标识,当被触摸的埋点为动态埋点时,第一终端可以获取动态埋点对应动态标识,根据动态标识获取到相应路径,从而通过该路径将动态埋点的触摸事件上传至服务器。当被触摸的埋点为静态埋点时,第一终端可以获取静态埋点对应的索引标识,根据索引标识获取到相应路径,从而利用该路径将静态埋点的触摸事件上传至服务器。由于动态标识是动态埋点的唯一标识,而且动态不会对静态埋点的索引标识产生影响,由此实现了应用程序动态页面中每个埋点的路径准确无误。
[0062] 在一个实施例中,该方法还包括:当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;获取埋点类别中剩余埋点对应的动态标识;当剩余埋点被触摸时,根据剩余埋点对应的动态标识获取对应的路径;根据动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0063] 动态页面中的动态埋点可以是新增的,也可以是被删除的。对于新增的动态埋点,第二终端可以根据所属的埋点类别直接为其设置相应的动态标识。对于被删除的动态埋点,在被删除之前,该动态埋点在视图树中具有相应的位置。如果第二终端预先为该动态埋点设置动态标识,而对同类别的其他埋点设置索引标识,会给开发人员造成额外的工作,给开发人员带来不便。如果动态埋点在视图树中的位置被误算,则可能导致其他埋点的路径错乱。
[0064] 为了确保每个埋点的路径准确无误,当动态页面中存在被删除的动态埋点时,第二终端可以获取该动态埋点的埋点类别,对该埋点类别中的所有埋点都设置相应的动态标识。由此避免了动态埋点在视图树中的位置为误算的情形。当第一终端中的动态页面随着用户操作删除了某个动态埋点后,第一终端根据被删除的动态埋点获取对应的埋点类别,获取埋点类别中剩余埋点对应的动态标识。第一终端对该动态页面中的用户操作进行捕捉,当该动态页面中的剩余埋点被触摸时,获取对应的触摸事件。第一终端根据剩余埋点对应的动态标识在其所属埋点类别中进行遍历,获取对应的路径。第一终端利用动态标识对应的路径将剩余埋点的触摸事件上传至服务器。当该动态页面中有多个剩余埋点被触摸时,按照上述方式,分别获取多个剩余埋点对应的动态标识。第一终端利用动态标识对应的路径将多个剩余埋点的触摸事件上传至服务器。由此在动态页面中存在被删除的埋点时,依然能够确保每个埋点的路径准确无误。
[0065] 在一个实施例中,该方法还包括:动态页面中包括多个滑动视图;方法还包括:监测动态页面的变化,获取当前显示的滑动视图的当前视图标识;根据当前视图标识获取对应的埋点,将埋点加载至滑动视图;获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;根据相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。
[0066] 本实施例中,动态页面中可以设置有ViewPager控件(视图滑动切换控件)以及多个滑动视图。通过ViewPager控件可以实现动态页面中的多个滑动视图的切换。不同的滑动视图可以反映不同的内容,滑动视图中还可以被配置相应的埋点。
[0067] 由于ViewPager控件只对当前显示的滑动视图以及左右两边的滑动视图的触摸操作进行采集,并不能对所有的滑动视图的触摸操作进行采集,为了确保ViewPager控件下多个滑动视图内的埋点不会冲突和覆盖,本实施例中对滑动视图的埋点分批加载。具体的,第一终端对动态页面的变化进行监测,获取动态页面中当前显示的滑动视图的视图标识。该视图标识也可以称为当前视图标识。第一终端获取与当前显示的滑动视图相邻的滑动视图,得到对应的视图标识,即相邻视图标识。服务器根据相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。例如,动态页面中包括5个滑动视图,假设当前显示的滑动视图为视图1,则第一终端加载视图1的埋点,以及加载视图2的埋点。假设当前显示的滑动视图为视图3,则第一终端除了加载视图3的埋点之外,还加载视图2的埋点以及视图4的埋点。由此在面对ViewPager控件下的多个滑动视图时,有效避免了滑动视图之间的埋点相互冲突以及覆盖的问题。
[0068] 在一个实施例中,在拉取应用程序多个页面的埋点的步骤之前,还包括:通过应用程序检测第一终端被摇晃的速度;当第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;绘制当前页面对应的视图树,以及对当前页面进行截图;将视图树与当前页面的截图传输至第二终端,以使得第二终端根据截图与视图树在当前页面中设置埋点。
[0069] 本实施例中,应用程序的埋点可以是在应用程序发布之前预先设置好的,还可以是开发人员根据需要通过第二终端随时进行设置的。
[0070] 通过应用程序检测第一终端被摇晃的速度,当第一终端被摇晃的速度超过阈值时,第一终端向第二终端发送连接请求。第二终端接收该链接请求,返回获取第一终端设备信息的请求。第一终端的设备信息包括设备名称、型号和操作系统等。第一终端将其设备信息发送至第二终端,第二终端对第一终端的设备信息进行验证,验证通过,建立第一终端与第二终端之间的通信连接。
[0071] 第二终端向第一终端发送绘制屏幕请求,第一终端根据绘制屏幕请求获取当前页面中的各个节点,利用各个节点绘制当前页面对应的视图树,以及对当前页面进行截图。第一终端将当前页面的视图树以及截图传输至第二终端。由此使得第一终端中的应用程序的页面与第二终端中的Web页面同步。第二终端根据视图树和截图,获取可埋点的位置和形状。开发人员通过第二终端从视图树中查询相应的控件、生成控件的定位信息,利用该控件及控件的定位信息对当前页面进行可视化埋点。设置后的埋点被上传至服务器。第一终端启动应用程序时,应用程序可以在服务器拉取相应的埋点数据,由此实现了应用程序的埋点能够随时进行更新。
[0072] 在一个实施例中,应用程序包括React-Native应用程序;页面中包括控件;在拉取应用程序多个页面的埋点的步骤之前,还包括:通过Native层获取控件的触摸事件,将触摸事件发送至React层进行处理;在React层将处理后的触摸事件返回至Native层后,对触摸事件的处理状态进行修改;根据修改后的处理状态,将触摸事件继续传递至被触摸的控件;获取被触摸的控件的名称和路径,将被触摸的控件的名称和路径发送至第二终端,以使得第二终端根据被触摸的控件的名称和路径设置埋点。
[0073] 应用程序可以是原生应用程序,也可以是混合应用程序。其中混合应用程序包括React-Native应用程序。在传统的React-Native应用程序中,当用户触摸控件后,Native层首先获取触摸事件,将触摸事件转发给React层处理。待React层处理结束后将处理后的触发事件返回至Native层,Native层结束对触摸事件的继续响应。由此使得触摸事件无法继续执行,从而使得可视化埋点方案无法适用于React-Native应用程序。
[0074] 本实施例中,第二终端对应用程序的Native层代码进行了修改。当React层向Native层返回处理后的触发事件时,第一终端对触摸事件在Native层的处理状态进行修改。例如,由结束状态修改为未结束状态。Native根据修改后的处理状态将触摸事件继续传递至被触摸的控件。由此使得第一终端获取到被触摸控件的控件名称和路径。第一终端将获取的被触摸控件的控件名称和路径发送至第二终端。第二终端根据被触摸的控件的名称和路径对该控件进行可视化埋点设置。由此实现了React-Native应用程序中的可视化埋点设置。
[0075] 如图3所示,本申请还提供了一种动态页面中的埋点处理装置。在一个实施例中,该装置包括:埋点拉取模块302、事件捕捉模块304、路径获取模块306和通信模块308,每个模块可以通过软件、硬件或其组合来实现。其中:
[0076] 埋点拉取模块302,用于拉取应用程序多个页面的埋点;页面包括动态页面,埋点包括静态埋点和动态埋点。
[0077] 事件捕捉模块304,用于捕捉动态页面中的埋点所对应的触摸事件。
[0078] 路径获取模块306,用于当被触摸的埋点为动态埋点时,获取动态埋点对应动态标识,根据动态标识获取对应的路径;当被触摸的埋点为静态埋点时,获取静态埋点对应的索引标识,根据索引标识获取对应的路径。
[0079] 通信模块308,用于利用动态标识对应的路径将动态埋点的触摸事件上传至服务器,以及利用索引标识对应的路径将静态埋点的触摸事件上传至服务器。
[0080] 在一个实施例中,路径获取模块306还用于当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;获取埋点类别中剩余埋点对应的动态标识;当剩余埋点被触摸时,根据剩余埋点对应的动态标识获取对应的路径;上传模块308还用于根据动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0081] 在一个实施例中,动态页面中包括多个滑动视图;该装置还包括:监测模块,用于监测动态页面的变化,获取当前显示的滑动视图的当前视图标识;根据当前视图标识获取对应的埋点,将埋点加载至滑动视图;获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;根据相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。
[0082] 在一个实施例中,该装置还包括:通信连接模块和同步模块,其中:
[0083] 通信连接模块,用于通过应用程序检测第一终端被摇晃的速度;当第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信。
[0084] 同步模块,用于绘制当前页面对应的视图树,以及对当前页面进行截图;将视图树与当前页面的截图传输至第二终端,以使得第二终端根据截图与视图树在当前页面中设置埋点。
[0085] 在一个实施例中,应用程序包括React-Native应用程序;页面中包括控件;该装置还包括:状态修改模块,用于通过Native层获取控件的触摸事件,将触摸事件发送至React层进行处理;在React层将处理后的触摸事件返回至Native层后,对触摸事件的处理状态进行修改;根据修改后的处理状态,将触摸事件继续传递至被触摸的控件;获取被触摸的控件的名称和路径;通信模块还用于将被触摸的控件的名称和路径发送至第二终端,以使得第二终端根据被触摸的控件的名称和路径设置埋点。
[0086] 上述的动态页面中的埋点处理装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。其中,计算机设备可以是一种移动终端。
[0087] 在一个实施例中,提供了一种计算机设备,如移动终端,如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该计算机设备的非易失性存储介质存储有操作系统和和计算机程序。该计算机设备的内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种动态页面中的埋点处理方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0088] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0089] 拉取应用程序多个页面的埋点;页面包括动态页面,埋点包括静态埋点和动态埋点;
[0090] 捕捉动态页面中的埋点所对应的触摸事件;
[0091] 当被触摸的埋点为动态埋点时,获取动态埋点对应动态标识,根据动态标识获取对应的路径;
[0092] 当被触摸的埋点为静态埋点时,获取静态埋点对应的索引标识,根据索引标识获取对应的路径;
[0093] 利用动态标识对应的路径将动态埋点的触摸事件上传至服务器,以及利用索引标识对应的路径将静态埋点的触摸事件上传至服务器。
[0094] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0095] 当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;
[0096] 获取埋点类别中剩余埋点对应的动态标识;
[0097] 当剩余埋点被触摸时,根据剩余埋点对应的动态标识获取对应的路径;
[0098] 根据动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0099] 在一个实施例中,动态页面中包括多个滑动视图;处理器执行计算机程序时还实现以下步骤:
[0100] 监测动态页面的变化,获取当前显示的滑动视图的当前视图标识;
[0101] 根据当前视图标识获取对应的埋点,将埋点加载至滑动视图;
[0102] 获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;
[0103] 根据相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。
[0104] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0105] 通过应用程序检测第一终端被摇晃的速度;
[0106] 当第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;
[0107] 绘制当前页面对应的视图树,以及对当前页面进行截图;
[0108] 将视图树与当前页面的截图传输至第二终端,以使得第二终端根据截图与视图树在当前页面中设置埋点。
[0109] 在一个实施例中,应用程序包括React-Native应用程序;页面中包括控件;处理器执行计算机程序时还实现以下步骤:
[0110] 通过Native层获取控件的触摸事件,将触摸事件发送至React层进行处理;
[0111] 在React层将处理后的触摸事件返回至Native层后,对触摸事件的处理状态进行修改;
[0112] 根据修改后的处理状态,将触摸事件继续传递至被触摸的控件;
[0113] 获取被触摸的控件的名称和路径,将被触摸的控件的名称和路径发送至第二终端,以使得第二终端根据被触摸的控件的名称和路径设置埋点。
[0114] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0115] 拉取应用程序多个页面的埋点;页面包括动态页面,埋点包括静态埋点和动态埋点;
[0116] 捕捉动态页面中的埋点所对应的触摸事件;
[0117] 当被触摸的埋点为动态埋点时,获取动态埋点对应动态标识,根据动态标识获取对应的路径;
[0118] 当被触摸的埋点为静态埋点时,获取静态埋点对应的索引标识,根据索引标识获取对应的路径;
[0119] 利用动态标识对应的路径将动态埋点的触摸事件上传至服务器,以及利用索引标识对应的路径将静态埋点的触摸事件上传至服务器。
[0120] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0121] 当动态埋点被删除时,根据被删除的动态埋点获取对应的埋点类别;
[0122] 获取埋点类别中剩余埋点对应的动态标识;
[0123] 当剩余埋点被触摸时,根据剩余埋点对应的动态标识获取对应的路径;
[0124] 根据动态标识对应的路径将生成埋点的触摸事件上传至服务器。
[0125] 在一个实施例中,动态页面中包括多个滑动视图;计算机程序被处理器执行时还实现以下步骤:
[0126] 监测动态页面的变化,获取当前显示的滑动视图的当前视图标识;
[0127] 根据当前视图标识获取对应的埋点,将埋点加载至滑动视图;
[0128] 获取与当前显示的滑动视图相邻的滑动视图,得到相邻视图标识;
[0129] 根据相邻视图标识获取对应的埋点,将获取到的埋点加载至相邻的滑动视图。
[0130] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0131] 通过应用程序检测第一终端被摇晃的速度;
[0132] 当第一终端被摇晃的速度超过阈值时,建立与第二终端之间的通信;
[0133] 绘制当前页面对应的视图树,以及对当前页面进行截图;
[0134] 将视图树与当前页面的截图传输至第二终端,以使得第二终端根据截图与视图树在当前页面中设置埋点。
[0135] 在一个实施例中,应用程序包括React-Native应用程序;页面中包括控件;计算机程序被处理器执行时还实现以下步骤:
[0136] 通过Native层获取控件的触摸事件,将触摸事件发送至React层进行处理;
[0137] 在React层将处理后的触摸事件返回至Native层后,对触摸事件的处理状态进行修改;
[0138] 根据修改后的处理状态,将触摸事件继续传递至被触摸的控件;
[0139] 获取被触摸的控件的名称和路径,将被触摸的控件的名称和路径发送至第二终端,以使得第二终端根据被触摸的控件的名称和路径设置埋点。
[0140] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个或多个非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
[0141] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0142] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。