CN107861655A - 控件匹配方法、装置、计算机设备和存储介质 - Google Patents
控件匹配方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN107861655A CN107861655A CN201711058961.8A CN201711058961A CN107861655A CN 107861655 A CN107861655 A CN 107861655A CN 201711058961 A CN201711058961 A CN 201711058961A CN 107861655 A CN107861655 A CN 107861655A
- Authority
- CN
- China
- Prior art keywords
- control
- view
- buried
- touch
- index
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72454—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72457—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
Abstract
本申请涉及一种控件匹配方法、装置、计算机设备和存储介质,方法包括:获取当前应用程序页面中发生的触摸事件,对触摸事件进行拦截;触摸事件与应用程序的被触摸控件相对应;获取被触摸控件的视图路径和索引路径;获取服务器发送的多个被埋点控件的视图路径和索引路径;将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配;当视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器。采用本方法能够提高控件匹配精度,进而可以对控件的触摸事件进行准确上报。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及控件匹配方法、装置、计算机设备和存储介质。
背景技术
在APP(Application,应用程序)中设置埋点是很多APP开发商收集用户行为数据的重要手段。目前,在APP中设置埋点的方案有多种,如代码埋点、可视化埋点和无埋点等。其中,可视化埋点和无埋点的方案可以通过终端将APP页面控件信息上传至Web服务器,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。第二终端通过Web页面展示还原后的页面截图,获取应用程序开发商对页面截图中多个控件的埋点操作,将被埋点的控件(以下称“被埋点控件”)对应的埋点信息返回至服务器108。服务器108根据属性信息生成多个被埋点控件分别对应的视图路径和索引路径,将被埋点控件的埋点信息、视图路径和索引路径发送至第三终端106。当用户对当前应用程序页面的某个控件进行触摸操作时,第三终端106利用SDK获取当前应用程序页面中被触摸控件对应的触摸事件,对触摸事件进行拦截,获取被触摸控件的视图路径和索引路径,将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配。若分别匹配成功,则第三终端106将触摸事件上报至服务器108。视图路径对不同层级的控件进行区分,索引路径对同一层级多个不同控件进行区分,结合视图路径和索引路径可以对控件进行准确定位,从而可以提高控件匹配精度。
在一个实施例中,如图2所示,提供了一种控件匹配方法,以该方法应用于第三终端为例进行说明,具体包括以下步骤:
步骤202,获取当前应用程序页面中发生的触摸事件,对触摸事件进行拦截;触摸事件与应用程序的被触摸控件相对应。
当用户通过第三终端对当前应用程序页面的某个控件进行触摸操作时,第三终端获取当前应用程序页面中被触摸的控件(以下称“被触摸控件”)对应的触摸事件,利用SDK对触摸事件进行拦截。当服务器将被埋点控件的埋点信息、视图路径和索引路径发送至第三终端时,第三终端利用SDK对被埋点控件的埋点信息、视图路径和索引路径进行缓存。
步骤204,获取被触摸控件的视图路径和索引路径。
第三终端还利用SDK采集并缓存了当前应用程序页面多个视图的属性信息。视图包括控件和视图控制器。在当前应用程序页面,视图控制器用于创建和管理控件,对用户是不可见的。用户可以对可见的控件进行触摸操作。触摸操作包括点击、长按、短按或滑动等。需要说明的是,视图控制器对用户虽是不可见的,但控件和视图控制器一起才能够反映当前应用程序页面中多个视图整体的层级结构,故视图控制器也用于构建控件的视图路径和索引路径。
属性信息包括视图名称和视图索引。容易理解,视图名称可以是控件名称或控制器名称,视图索引可以是视图控件索引或控制器索引。视图名称可以直接反映视图类型,如UIwindow(一种控件名称)属于窗口类型控件,UIButton属于按钮类型控件,RootViewController属于根视图控制器等。视图索引可以是SDK根据当前应用程序页面多个视图之间的层级关系预先给多个视图分配的。SDK根据该层级关系对不同层级的视图分别进行单独编号,对同一层级的不同类型的视图分别进行单独编号,对同一层级的相同类型视图进行连续编号,将编号作为相应视图对应的视图索引。例如,假设在同一层级的视图中存在三个按钮类型控件,以0作为初始值进行编号,则三个按钮类型控件对应的控件索引依次可以是0,1和2。SDK可以将视图索引作为对应视图的视图名称的下标进行记录,如UIButton0,UIButton1和UIButton2。
属性信息还包括当前应用程序页面多个视图的层级信息。每个视图具有对应的层级信息,层级信息包括该视图与其他一个或多个视图之间的继承关系。例如,控件UIButton继承于控件UIView,控件UIView继承于视图控制器ViewController,则控件UIView为控件UIButton的上一层级视图,视图控制器ViewController为控件UIView的上一层级视图。
当用户通过第三终端对当前应用程序页面的某个控件进行触摸操作时,SDK读取缓存的被触摸控件的属性信息,根据属性信息得到被触摸控件的层级路径。层级路径包括视图路径和索引路径。
当用户通过第三终端对当前应用程序页面的某个控件进行触摸操作时,第三终端利用SDK获取被触摸控件的属性信息。SDK根据被触摸控件的层级信息向上逐级回溯,即识别被触摸控件是否存在上一层级视图。当被触摸控件存在上一层级视图时,提取该上一层级视图的视图名称和视图索引。SDK根据被触摸控件的层级信息继续向上逐级回溯,即识别被触摸控件的上一层级视图是否仍存在对应的上一层级视图,若存在,则提取对应的视图名称和视图索引,直至最高层级视图。
根据被触摸控件的层级信息,SDK利用第一预设标识将提取到的多个视图名称逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图名称依次拼接,得到目录字符串,将该目录字符串作为被触摸控件对应的视图路径。SDK利用第二预设标识将提取到的多个视图索引逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图索引依次拼接,得到索引字符串,将该索引字符串作为被触摸控件对应的索引路径,从而得到被触摸控件对应的层级路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。
例如,假设被触摸控件为上述举例中的控件UIButton1,控件UIButton1对应的视图路径可以是/UIwindow/ViewController/UIView/UIButton,索引路径可以是0_1_2_1。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,得到如下层级路径:/UIwindow0/ViewController1/UIView2/UIButton1。
步骤206,获取服务器发送的多个被埋点控件的视图路径和索引路径。
需要说明的是,步骤206可以在步骤204之前执行,也可以与步骤204并列执行。
步骤208,将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配。
第三终端利用SDK读取缓存的多个被埋点控件的视图路径和索引路径,将被埋点控件的视图路径和索引路径作为匹配参考对象,将被触摸控件的视图路径和索引路径分别与匹配参考对象进行匹配。
为了提高匹配效率,第三终端根据层级路径中每个视图的视图深度将被触摸控件的层级路径与被埋点控件的层级路径进行匹配。一个视图的视图深度是指该视图的视图名称在其层级路径中相对其他视图名称的顺序。为了描述方便,规定视图路径中第一个视图名称对应第一视图深度,第二个视图名称对应第二视图深度,如此递推。例如,视图路径/UIwindow/ViewController/UIView/UIButton中UIwindow对应第一视图深度,ViewController对应第二视图深度,UIView对应第三视图深度,UIButton对应第四视图深度。最后一个视图名称为被触摸控件的视图名称,对应最后的视图深度。可以理解,第三终端还可以采用其他方式对被触摸控件的层级路径与被埋点控件的层级路径进行匹配,这里不作限制。
SDK根据视图深度将被触摸控件的层级路径与多个被埋点控件的层级路径进行剔除式匹配,逐渐减少被埋点控件作为匹配参考对象的数量,以减少不必要的匹配。具体的,SDK进行第一轮匹配,将被触摸控件层级路径中第一视图深度的视图名称和对应的视图索引分别与多个被埋点控件层级路径中第一视图深度的视图名称和对应的视图索引进行匹配,筛选第一视图深度的视图名称和对应的视图索引分别匹配成功的一个或多个被埋点控件的视图路径。SDK进行第二轮匹配,将被触摸控件层级路径中第二视图深度的视图名称和对应的视图索引分别与筛选出的多个被埋点控件层级路径中第二视图深度的视图名称和对应的视图索引进行匹配,如此经过多轮匹配,直至被触摸控件的视图名称和视图索引也完成匹配。
例如,假设SDK缓存了以下被埋点控件的层级路径,如被埋点控件A的层级路径为/UIwindow0/RootController1/UIView2/UIButton1,被埋点控件B的层级路径为/UIwindow0/ViewController1/ChildController1/UILabel,被埋点控件C的层级路径为/UIwindow0/ViewController1/UIView2/UIButton1,被埋点控件D的层级路径为/UIwindow0/ViewController1/UIView2/UIButton0,则经过第二轮匹配时将被埋点控件A的层级路径被剔除,经过第三轮匹配时将被埋点控件B的层级路径被剔除,第四轮匹配时只需与被埋点控件C和D的层级路径进行匹配。应当理解的是,本实施例仅示意性的给出有限个匹配参考对象,实际被埋点控件的数量较多,且实际层级路径的视图深度较深,故在实际操作中,上述剔除式匹配方式对匹配效率的提高更为明显。
步骤210,当视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器。
当存在被埋点控件的层级路径与被触摸控件的层级路径一致,即存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,表示被触摸控件属于被埋点控件,需要将被触摸控件对应的触摸事件上报至服务器。需要说明的是,接收触摸事件上报信息的服务器与向第三终端下发埋点信息的服务器可以是同一服务器,也可以是不同的服务器。
本实施例中,当当前应用程序页面的控件被触摸时,可以对被触摸控件对应的触摸事件进行拦截;在拦截触摸事件后,获取被触摸控件的路径信息,对服务器发送的多个被埋点控件的路径信息与被触摸控件的路径信息进行匹配,可以判断是否需要对触摸事件进行上报;当存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,将触摸事件上报至服务器。视图路径可以对不同层级视图对应的控件进行区分,索引路径可以对同一层级视图对应的不同控件进行区分,视图路径和索引路径的结合可以对控件准确定位,从而能够提高控件匹配精度,进而可以对控件的触摸事件进行准确上报。
在一个实施例中,获取被触摸控件的视图路径和索引路径的步骤,包括:查询是否存在被触摸控件对应的匹配成功记录;当不存在对应的匹配成功记录时,获取被触摸控件的属性信息,根据属性信息生成被触摸控件的视图路径和索引路径;该方法还包括:当存在对应的匹配成功记录时,跳转至将被触摸控件对应的触摸事件上报至服务器的步骤。
SDK还包括控件匹配记录脚本。当存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,表示被触摸控件属于被埋点控件,SDK对被触摸控件添加对应的匹配成功记录。当该控件再次被触摸时,第三终端读取SDK是否存储有该控件对应的匹配成功记录,若存在,则不再重复匹配,直接将该控件对应的触摸事件上报至服务器。
本实施例中,若一个控件已经进行过匹配且匹配成功,则对该控件的匹配结果进行记录,当该控件再次被触摸时无需重复匹配,使得第三终端对每个控件只需进行一次匹配,可以提高控件匹配效率,也可以节省第三终端服务资源。
在一个实施例中,获取服务器发送的多个被埋点控件的视图路径和索引路径的步骤,包括:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对当前应用程序页面进行解析,获取当前页面中多个视图对应的属性信息;将属性信息对应配置项添加至配置表;将配置表发送至服务器,使服务器根据属性信息生成的多个被埋点控件的视图路径和索引路径;接收服务器发送的多个被埋点控件的视图路径和索引路径。
当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面通过扫描识别码或输入特定手势向服务器发送可视化埋点请求。具体的,第一终端获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。通过扫描识别码即可触发可视化埋点,操作简便,且符合当下用户习惯。或者,第一终端获取在当前应用程序页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。通过输入特定手势即可触发可视化埋点,操作简单;特定手势不同于用户操作第一终端时常用手势,可以减少误操作。容易理解,向服务器发送可视化埋点请求还包括多种实施方式,这里不再一一赘述。
服务器根据可视化埋点请求执行预设的埋点准备任务,作好埋点准备后,向第一终端返回截屏请求。截屏请求中携带了空的配置表,配置表记录了多个配置项。配置项包括视图名称及对应的属性名称等,如基本属性和访问属性等。配置表可以是应用程序开发商预先配置在服务器中的。根据截屏请求及携带的配置表,第一终端利用SDK对当前应用程序页面进行解析,获取当前页面中多个视图对应的属性信息,将属性信息对应配置项添加至配置表中,以对配置表进行填写,将填写后的配置表发送至服务器。
服务器在配置表中读取视图的属性信息,根据属性信息生成多个被埋点控件的视图路径和索引路径,将多个被埋点控件的视图路径和索引路径发送至第三终端。
本实施例中,应用程序开发商可以根据需求及时在配置表中添加遗漏的配置项,也可以删除不必要的配置项,如数据量较大的控件背景图片,避免第一终端上报一些冗余的数据,可以对上报的视图的属性信息进行一定程度上的优化,也可以减少第一终端获取视图的属性信息以及填写配置表的时间,进而可以提高服务器对视图路径和索引路径的生成效率。
在一个实施例中,获取被触摸控件的视图路径和索引路径的步骤,包括:获取被触摸控件的属性信息;属性信息包括视图名称,视图索引以及层级信息;根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至被触摸控件的视图名称逐级拼接,得到目录字符串,将目录字符串作为被触摸控件的视图路径;根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的视图索引至被触摸控件的视图索引逐级拼接,得到索引字符串,将索引字符串作为被触摸控件的索引路径。
当用户通过第三终端对当前应用程序页面的某个控件进行触摸操作时,第三终端利用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个子视图。
本实施例中,视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,从而视图路径和索引路径的结合可以共同完成控件唯一性定位。
在一个实施例中,当被触摸控件与被埋点控件的视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器的步骤,还包括:当被触摸控件与被埋点控件的视图路径或索引路径匹配成功时,获取被触摸控件以及被埋点控件分别对应的图标;将被触摸控件对应的图标和被埋点控件对应的图标压缩至相同尺寸,使压缩后的多个图标具有相同数量的像素点;利用每个图标中多个像素点的像素值生成得到相应图标对应的像素矩阵;根据被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度;当相似度达到阈值时,将被触摸控件对应的触摸事件上报至服务器。
当当前应用程序页面某个控件被删除时,第三终端利用SDK对当前应用程序页面多个视图重新分配视图索引。当以编号的方式建立视图索引时,为了保证编号的连续性,SDK对当前应用程序页面多个视图重新编号,如将按钮控件UIButton1删除后,按钮控件UIButton2变为按钮控件UIButton1,而找不到按钮控件UIButton2。当用户点击按钮控件UIButton2时,第三终端将按钮控件UIButton2当作原按钮控件UIButton1与被埋点控件进行匹配。换句话说,第三终端实际获取的是原按钮控件UIButton1的层级路径,若第三终端也缓存了服务器下发的对应层级路径的信息,则被触摸的按钮控件UIButton2也会匹配成功,但此时的匹配结果应当是无效的。
在其中一个实施例中,为了防止上述无效匹配,在对层级路径进行匹配后,对被触摸控件对应图标的哈希值进行匹配。具体的,当被触摸控件与被埋点控件的视图路径和索引路径分别匹配成功,且被触摸控件属于预设类型的控件时,第三终端利用SDK获取被触摸控件对应图标的哈希值,获取与被触摸控件层级路径匹配成功的被埋点控件对应图标的哈希值,将被触摸控件对应图标的哈希值与该被埋点控件对应图标的哈希值进行匹配。当被触摸控件对应图标的哈希值与被埋点控件对应图标的哈希值匹配成功时,表示对层级路径的匹配为有效匹配,可以对触摸事件进行上报。在对被触摸控件的层级路径进行匹配后,对被触摸控件对应图标的哈希值进行匹配,可以提高匹配准确度。
当用户使用的第三终端与应用程序开发商设置埋点时使用的第一终端为不同尺寸的终端时,当前应用程序页面上同一控件对应的图标尺寸不同,使得图标对应的哈希值也不同。即使被触摸控件实际属于被埋点控件,第三终端也可能因不存在与该被触摸控件对应图标具有相同哈希值的被埋点控件,将被触摸控件视作未被设置埋点的控件,进而对该被触摸控件对应的触摸事件不予上报,使得触摸事件被漏报。因而,当被触摸控件对应图标的哈希值匹配失败时,尚不能确定该被触摸控件未被设置埋点,有可能是因为被触摸控件对应图标与被埋点控件对应图标的尺寸不同导致。
为了克服上述触摸事件漏报的问题,当被触摸控件对应图标的哈希值匹配失败时,对被触摸控件对应图标的与被埋点控件对应图标的相似度进行匹配。具体的,第三终端利用SDK获取被触摸控件对应的图标,获取多个被埋点控件对应的图标,将被触摸控件对应的图标和被埋点控件对应的图标压缩至相同尺寸,使压缩后的多个图标具有相同数量的像素点,如32*32PPI(pixels per inch,像素每英寸)。SDK将每个图标中多个像素点的像素值作为矩阵元素,生成相应图标对应的像素矩阵。对于RGB颜色模式(一种颜色标准)的图标,对应的每个像素点的像素值包括红(R)、绿(G)、蓝(B)三个颜色通道分别对应的R值,G值和B值。
第三终端利用SDK按照上述方式得到多个被埋点控件对应图标的像素矩阵,根据被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度。当相似度达到阈值时,SDK将被触摸控件对应的触摸事件上报至服务器。
本实施例中,当被触摸控件对应图标的哈希值匹配失败时,对被触摸控件对应图标与被埋点控件对应图标的相似度进行匹配,可以对被触摸控件是否属于被埋点控件作进一步的判断,可以减少触摸事件被漏报的情况,也可以进一步提高控件匹配精度。
在一个实施例中,根据被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度的步骤,包括:根据图标中多个像素点的像素值,计算每个像素点对应的灰度值;利用每个图标中多个像素点的灰度值生成得到相应图标对应的灰度矩阵;根据图标中多个像素点的灰度值,计算图标对应的灰度均值;根据灰度均值对相应灰度矩阵中的多个灰度值进行替换,得到相应图标对应的目标矩阵;对被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵进行预设逻辑运算,得到相似度矩阵;根据相似度矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度。
第三终端利用SDK根据图标中每个像素点的像素值计算相应像素点对应的灰度值,将该图标中多个像素点的灰度值作为矩阵元素,生成相应图标对应的灰度矩阵。每个像素点对应的灰度值可以是该像素点的像素值的平均值,即三个颜色通道对应的R值,G值和B值的平均值,从而将图标对应的像素矩阵转换为灰度矩阵,即将彩色图标对应的矩阵转换为黑白图标对应的矩阵,可以减少第三终端计算量。在其中的一个实施例中,SDK对转换得到的灰度矩阵进行DCT变换(Discrete Cosine Transform,离散余弦变换),将灰度矩阵从时域变换至频域。容易理解,频率与图标对应的图像信号强度负相关,通过DCT变换可以将图像信号强度保持在低频部分,过滤掉高频部分,从而可以加强图像信号强度。
SDK根据图标中多个像素点的灰度值计算该图标对应的灰度均值。灰度均值为图标对应的灰度矩阵中全部像素点对应灰度值的平均值。SDK根据灰度均值对对应灰度矩阵中的多个灰度值进行替换,得到相应图标对应的目标矩阵。具体的,SDK遍历灰度矩阵中每一个矩阵元素,若矩阵元素对应的灰度值大于或等于灰度均值,则将该矩阵元素对应的灰度值置为第一目标值;否则,将该矩阵元素对应的灰度值置为第二目标值,从而得到图标对应的目标矩阵。
SDK对被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵进行预设逻辑运算,得到相似度矩阵。预设逻辑运算包括异或运算。具体的,SDK对被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵中每个矩阵元素进行异或运算。若在被触摸控件对应图标的目标矩阵和被埋点控件对应图标的目标矩阵中,同一矩阵坐标上的矩阵元素对应的灰度值相同,则SDK将第一相似值作为相同矩阵坐标上的矩阵元素添加至相似度矩阵中;否则,将第二相似值作为相同矩阵坐标上的矩阵元素添加至相似度矩阵中。SDK对相似度矩阵进行遍历,计算相似度矩阵中第一相似值的数量,根据相似度矩阵中第一相似值的数量计算两个图标的相似度,当相似度达到阈值时,将被触摸控件对应的触摸事件上报至服务器。
在一个具体的实施例中,当灰度矩阵中矩阵元素对应的灰度值大于或等于灰度均值时,SDK将该矩阵元素对应的灰度值置为1;否则,将该矩阵元素对应的灰度值置为0,将得到的01矩阵作为图标对应的目标矩阵。SDK对被触摸控件对应图标的01矩阵与被埋点控件对应图标的01矩阵进行异或计算,将得到的01矩阵作为两个图标对应的相似度矩阵。SDK对相似度矩阵进行遍历,计算相似度矩阵中1的数量,当相似度矩阵中1的数量达到阈值时,将被触摸控件对应的触摸事件上报至服务器。阈值可以是需求自由设置,如9。
本实施例中,不仅可以减少触摸事件被漏报的情况,进一步提高控件匹配精度,由于被触摸控件对应图标与被埋点控件对应图标的相似度仅需简单异或运算和有限次遍历即可计算得到,计算量小,从而还可以提高匹配效率。
在一个实施例中,将被触摸控件对应的触摸事件上报至服务器的步骤,包括:获取多个服务器标识以及对应的资源占用参数;根据资源占用参数对多个服务器标识进行筛选,得到资源占用最少的服务器标识,将触摸事件上报至对应的服务器。
在一个实施例中,如图3所示,提供了一种控件匹配方法,以该方法应用于服务器为例进行说明,具体包括以下步骤:
步骤302,接收终端发送的当前应用程序页面中多个视图的属性信息;视图包括控件;属性信息包括视图名称和层级信息。
步骤304,接收控件对应的埋点操作,根据属性信息获取被埋点的控件对应的视图路径。
服务器根据第一终端发送的当前应用程序页面多个视图的属性信息,对应页面截图中可以进行触摸操作的控件(以下称“可触摸控件”)进行识别,对可触摸控件添加对应的埋点边框,将设有埋点边框的页面截图发送至第二终端。第二终端通过Web页面对页面截图进行展示,获取应用程序开发商对埋点边框的点击操作以及输入的对应的触摸事件标识,将埋点边框对应控件的埋点信息发送至服务器。
服务器根据被埋点控件的层级信息,利用第一预设标识将最高层级视图至被埋点控件的多个视图的视图名称依次拼接,得到目录字符串,将该目录字符串作为被埋点控件对应的视图路径。例如,被触摸控件UIButton对应的视图路径可以是/UIwindow/ViewController/UIView/UIButton。
步骤306,根据层级信息,对当前页面中视图分配对应的视图索引,将最高层级视图对应的视图索引至被埋点的控件对应的视图索引逐级拼接,得到索引字符串,将索引字符串作为被埋点的控件的索引路径。
服务器根据多个视图的层级信息,对多个视图分别进行编号,将编号作为相应视图的视图索引。视图索引包括控件索引和控制器索引。服务器根据被埋点控件的层级信息,利用第二预设标识将最高层级视图至被埋点控件的多个视图的视图索引依次拼接,得到索引字符串,将该索引字符串作为被埋点控件对应的视图路径。例如,被触摸控件UIButton对应的索引路径可以是0_1_2_1。
步骤308,将被埋点的控件的视图路径和索引路径发送至终端,使终端在拦截到被触摸控件对应的触摸事件时,根据视图路径和索引路径对被触摸控件和被埋点的控件进行匹配,并在匹配成功时将被触摸控件对应的触摸事件进行上报。
服务器将多个被埋点控件的视图路径和索引路径发送至第三终端。当用户在第三终端对当前应用程序页面中某个控件进行触摸操作时,第三终端利用SDK对被触摸控件对应的触摸事件进行拦截,根据视图路径和索引路径对被触摸控件和被埋点控件进行匹配,并在匹配成功时将被触摸控件对应的触摸事件上报至服务器。
本实施例中,根据当前应用程序页面中多个视图的属性信息,可以生成被埋点的控件对应的视图路径和索引路径;将被埋点的控件的视图路径和索引路径发送至终端,可以使终端在拦截到被触摸控件对应的触摸事件时,根据视图路径和索引路径对被触摸控件和被埋点的控件进行匹配,根据匹配结果进行触摸事件的上报。由于路径信息不仅包括控件对应的视图路径,还包括索引路径,视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,视图路径和索引路径的结合可以共同完成控件唯一性定位,从而能够提高控件匹配精度,进而可以更准确的采集用户行为数据。
在一个实施例中,属性信息还包括视图标识;接收控件对应的埋点操作,根据属性信息获取被埋点的控件对应的视图路径的步骤,以及根据层级信息,对当前页面中视图分配对应的视图索引,将最高层级视图对应的视图索引至被埋点的控件对应的视图索引逐级拼接,得到索引字符串,将索引字符串作为被埋点的控件的索引路径的步骤,包括:获取当前应用程序页面的页面截图;按照预设规则将多个视图标识作为数组元素添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组,得到应用程序页面的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示并获取对埋点边框对应控件的埋点操作;接收预设终端返回的被埋点的控件的埋点信息,根据多叉树生成被埋点控件的层级路径。
当需要对应用程序设置埋点时,第一终端利用SDK获取当前应用程序页面的视图数据,将当前应用程序页面的视图数据封装为预设格式,并对视图数据进行压缩,将压缩后的视图数据加密传输至服务器。预设格式可以是具有数据层级结构的数据格式,如HDF(层次型数据格式),也可以是不具有层级结构的数据格式,如采用扁平化结构存储的JSON格式(一种数据交换格式)。
视图数据包括当前应用程序页面的页面截图及多个视图的属性信息。页面截图为静态的屏幕截图。视图包括控件和视图控制器。属性信息包括视图名称、视图标识和层级信息。视图标识可以唯一识别一个视图,可以是视图编号,如IDn(n=1,2…)等。服务器根据视图的属性信息构建当前应用程序页面对应的多叉树,根据多叉树生成被埋点控件的层级路径。具体的,服务器建立最高级别数组,在视图数据中提取与预设根视图具有相同视图名称的视图对应的视图标识,将提取到的视图标识添加至最高级别数组。例如,最高级别数组可以是A1[ID6]。
服务器将提取到的视图标记为父视图,根据该父视图的层级信息,对视图数据进行遍历,检测是否存在该父视图对应的子视图。父视图对应的子视图是指父视图的下一层级视图。当存在对应的子视图时,服务器建立次高级别数组,在视图数据中提取该父视图对应的子视图的视图标识,将提取到的视图标识添加至次高级别数组。例如,次高级别数组可以是A2[ID 2,ID 7,ID 8]。
服务器将提取到的子视图作为父视图,在视图数据中查询是否存在对应的子视图。当视图数据中存在对应的子视图时,服务器按照上述方式建立下一级别数组。如此循环,直至视图数据中不存在对应的子视图时,得到最低级别数组。例如,下一级别数组可以是A3[ID 1,ID 4,ID5],最低级别数组可以是A4[ID3,ID 9,ID10,ID 11,ID 12]。
服务器利用上述数组构建当前页面对应的多叉树。服务器每生成一个数组,将对应的数组元素作为节点添加至多叉树中。具体的,在生成最高级别数组后,服务器查询最高级别数组的数组元素对应的视图名称,将最高级别数组的数组元素对应的视图名称标记为多叉树的根节点。例如,如图4所示,多叉树的根节点为最高级别数组A1的数组元素ID 6对应的视图名称UIWindow(窗口)。
在得到多叉树的根节点后,服务器按照上述方式生成次高级别数组,查询次高级别数组的数组元素对应的视图名称,将次高级别数组的数组元素对应的视图名称标记为多叉树中根节点的子节点,利用预设连接线将子节点连接至根节点,形成多叉树的多个树枝。可以理解,根节点也是上述子节点的父节点。例如,如图4所示,预设连接线可以是带有箭头的线段,根节点的子节点为次高级别数组A2的三个数组元素ID2、ID7和ID8分别对应的视图名称UIView(视图)、ViewController(视图控制器)和UIView,对应形成多叉树的三个树枝。
在得到多叉树根节点的子节点后,服务器按照上述方式生成下一级别数组,将上述子节点作为该下一级别数组中数组元素的父节点,查询下一级别数组的数组元素对应的视图名称,利用预设连接线将下一级别数组中数组元素对应的视图名称连接至对应的父节点,以对多叉树的树枝进行延长。换句话说,服务器根据上述每个子节点对应视图的层级信息,查询每个子节点对应视图的下一层级视图,利用预设连接线将下一级别数组中相应数组元素对应的视图名称连接至对应的子节点。例如,如图4所示,假设次高级别数组A2的数组元素ID2对应视图不存在下一层级视图,数组元素ID7对应视图的下一层级视图包括数组元素ID1对应的视图,数组元素ID8对应视图的下一层级视图包括数组元素ID4对应的视图和数组元素ID5对应的视图,则将数组元素ID1对应视图的视图名称UIView连接至数组元素ID7对应视图的视图名称ViewController,将数组元素ID4对应视图的视图名称ChildController(子控制器)和数组元素ID5对应视图的视图名称ChildController分别连接至数组元素ID8对应视图的视图名称UIView。
服务器按照上述方式依次将每个数组中数组元素对应视图的视图名称作为节点添加至多叉树中,形成当前应用程序页面最终对应的多叉树。
第一终端上传至服务器的视图数据经过格式转换后可能不具有层级结构,且视图数据仅包含单个视图的层级信息,使得多个视图之间的层级关系隐蔽且分散,难以从整体上反应当前应用程序页面多个视图间的层级结构。本实施例中,服务器可以根据不具有层级结构的视图数据,对当前应用程序页面中多个视图的属性信息进行整合,提炼出可以从整体上反应当前页面多个视图间层级结构的多叉树。
服务器在多叉树构建过程中,对多叉树每个节点进行编号,以使每个节点对应的视图具有视图索引。具体的,服务器对多叉树中不同层级节点对应的视图分别进行单独编号,将编号作为对应视图的视图索引。服务器可以将视图索引作为对应视图的视图名称的下标进行记录。例如,如图4所示,三个按钮类型视图对应的视图索引可以是UIButton0(按钮0),UIButton1(按钮1)和UIButton2(按钮2)。
服务器根据视图的属性信息对可触摸视图进行识别。可触摸视图包括可触摸控件。服务器根据可触摸视图对应的视图标识,在多叉树中查询对应的节点,将该节点标记为目标节点。服务器利用第一预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径。服务器利用第二预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,根据视图路径和索引路径可以对每个可触摸视图进行准确定位。
服务器根据定位对可触摸视图添加对应的埋点边框。埋点边框可以响应应用程序开发商的点击操作。如图5所示,埋点边框的形状与大小可以是与对应视图的图标的形状与大小一致。服务器将设有埋点边框的页面截图发送至预设终端,即第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端对页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。服务器按照上述方式生成被埋点控件对应的层级路径,将被埋点控件的层级路径发送至第三终端,使第三终端在拦截到被触摸控件对应的触摸事件时,根据层级路径对被触摸控件和被埋点控件进行匹配。
本实施例中,根据当前应用程序页面多个视图的层级信息,可以将不同视图的视图标识作为数组元素添加至多个数组;根据不同级别数组包含的视图标识,可以查询对应视图的视图名称;通过将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为该父节点的子节点,将该子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,可以构建当前应用程序页面对应的多叉树;根据视图的层级信息构建的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图路径和索引路径,可以对每个视图进行准确定位。
在一个实施例中,视图包括控件;属性信息还包括基本属性和访问属性;根据多叉树生成多个视图分别对应的层级路径的步骤,包括:根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件;根据多叉树生成多个可触摸控件分别对应的层级路径。
当应用程序为原生APP时,第一终端发送至服务器的属性信息包括视图的基本属性。基本属性包括透明属性、隐藏属性和交互属性等。交互属性包括userInteractionEnabled(一种属性名称)属性。
服务器存储了预设集合。预设集合将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。其中,可以进行触摸操作的控件的控件名称包括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时,可以根据访问属性对对当前应用程序页面中的可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用,可以提高可触摸控件的识别精度。
在一个实施例中,根据层级信息,对当前页面中控件分配对应的视图索引的步骤,包括:根据层级信息,对不同层级的控件分别进行单独编号;对同一层级的不同类型的视图分别进行单独编号,将编号作为控件对应的控件索引。方法还包括:当当前应用程序页面新增或删除视图时,对与新增或删除的视图相同类型的视图重新进行单独编号,将编号作为控件对应的控件索引。
服务器按照多个视图之间的层级信息,对不同层级的视图分别进行单独编号,对同一层级的不同类型的视图分别进行单独编号,对同一层级的相同类型的视图进行连续编号。例如,同一层级存在三个按钮控件UIButton和三个标签控件UILabel,三个按钮控件UIButton对应的控件索引依次可以是UIButton0,UIButton1和UIButton2;三个标签控件UILabel对应的控件索引依次可以是UILabel0,UILabel1和UILabel2。
当当前应用程序页面新增或删除视图时,服务器仅对与新增或删除的视图相同类型的视图重新进行单独编号。例如,当将按钮控件UIButton1删除时,仅UIButton2变更为UIButton1,而对三个标签控件没有影响。对同一层级的不同类型的视图分别进行单独编号,可以尽量减少新增或删除视图对控件索引的影响,具有一定的索引路径抗干扰作用。
在一个实施例中,如图6所示,提供了一种控件匹配装置,包括:拦截模块602,路径获取模块604,路径匹配模块606和上报模块608,其中:
拦截模块602,用于获取当前应用程序页面中发生的触摸事件,对触摸事件进行拦截;触摸事件与应用程序的被触摸控件相对应。
路径获取模块604,用于获取被触摸控件的视图路径和索引路径,及获取服务器发送的多个被埋点控件的视图路径和索引路径。
路径匹配模块606,用于将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配。
上报模块608,用于当视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器。
在一个实施例中,路径获取模块604还用于获取被触摸控件的属性信息;属性信息包括视图名称,视图索引以及层级信息;根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至被触摸控件的视图名称逐级拼接,得到目录字符串,将目录字符串作为被触摸控件的视图路径;根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的控视图索引至被触摸控件的控视图索引逐级拼接,得到索引字符串,将索引字符串作为被触摸控件的索引路径。
上述的控件匹配装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。
在一个实施例中,提供了一种计算机设备,如图7所示,该计算机设备包括通过系统总线连接的处理器、存储装置和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储装置包括一个或多个非易失性存储介质、一个或多个内存储器。该服务器的非易失性存储介质存储有操作系统和计算机程序。该计算机设备的内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信,比如,接收第一终端发送的当前应用程序页面的页面截图及多个视图的属性信息等。该计算机程序被处理器执行时以实现一种控件匹配方法。处理器执行计算机程序时可以执行以下步骤:获取当前应用程序页面中发生的触摸事件,对触摸事件进行拦截;触摸事件与应用程序的被触摸控件相对应;获取被触摸控件的视图路径和索引路径;获取服务器发送的多个被埋点控件的视图路径和索引路径;将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配;当视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取被触摸控件的属性信息;属性信息包括视图名称,视图索引以及层级信息;根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至被触摸控件的视图名称逐级拼接,得到目录字符串,将目录字符串作为被触摸控件的视图路径;根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的控视图索引至被触摸控件的控视图索引逐级拼接,得到索引字符串,将索引字符串作为被触摸控件的索引路径。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:当被触摸控件与被埋点控件的视图路径或索引路径匹配成功时,获取被触摸控件以及被埋点控件分别对应的图标;将被触摸控件对应的图标和被埋点控件对应的图标压缩至相同尺寸,使压缩后的多个图标具有相同数量的像素点;利用每个图标中多个像素点的像素值生成得到相应图标对应的像素矩阵;根据被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度;当相似度达到阈值时,将被触摸控件对应的触摸事件上报至服务器。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:根据图标中多个像素点的像素值,计算每个像素点对应的灰度值;利用每个图标中多个像素点的灰度值生成得到相应图标对应的灰度矩阵;根据图标中多个像素点的灰度值,计算图标对应的灰度均值;根据灰度均值对相应灰度矩阵中的多个灰度值进行替换,得到相应图标对应的目标矩阵;对被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵进行预设逻辑运算,得到相似度矩阵;根据相似度矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:接收终端发送的当前应用程序页面中多个视图的属性信息;视图包括控件;属性信息包括视图名称和层级信息;获取控件对应的埋点操作,根据属性信息获取被埋点的控件对应的视图路径;根据层级信息,对当前页面中视图分配对应的视图索引,将最高层级视图对应的视图索引至被埋点的控件对应的视图索引逐级拼接,得到索引字符串,将索引字符串作为被埋点的控件的索引路径;将被埋点的控件的视图路径和索引路径发送至终端,使终端在拦截到被触摸控件对应的触摸事件时,根据视图路径和索引路径对被触摸控件和被埋点的控件进行匹配,并在匹配成功时将被触摸控件对应的触摸事件进行上报。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:根据层级信息,对不同层级的控件分别进行单独编号;对同一层级的不同类型的视图分别进行单独编号,将编号作为控件对应的控件索引;当当前应用程序页面新增或删除视图时,对与新增或删除的视图相同类型的视图重新进行单独编号,将编号作为控件对应的控件索引。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现计算机程序以下步骤:获取当前应用程序页面中发生的触摸事件,对触摸事件进行拦截;触摸事件与应用程序的被触摸控件相对应;获取被触摸控件的视图路径和索引路径;获取服务器发送的多个被埋点控件的视图路径和索引路径;将被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸控件的索引路径与被埋点控件的索引路径进行匹配;当视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取被触摸控件的属性信息;属性信息包括视图名称,视图索引以及层级信息;根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至被触摸控件的视图名称逐级拼接,得到目录字符串,将目录字符串作为被触摸控件的视图路径;根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的控视图索引至被触摸控件的控视图索引逐级拼接,得到索引字符串,将索引字符串作为被触摸控件的索引路径。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:当被触摸控件与被埋点控件的视图路径或索引路径匹配成功时,获取被触摸控件以及被埋点控件分别对应的图标;将被触摸控件对应的图标和被埋点控件对应的图标压缩至相同尺寸,使压缩后的多个图标具有相同数量的像素点;利用每个图标中多个像素点的像素值生成得到相应图标对应的像素矩阵;根据被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度;当相似度达到阈值时,将被触摸控件对应的触摸事件上报至服务器。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:根据图标中多个像素点的像素值,计算每个像素点对应的灰度值;利用每个图标中多个像素点的灰度值生成得到相应图标对应的灰度矩阵;根据图标中多个像素点的灰度值,计算图标对应的灰度均值;根据灰度均值对相应灰度矩阵中的多个灰度值进行替换,得到相应图标对应的目标矩阵;对被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵进行预设逻辑运算,得到相似度矩阵;根据相似度矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:接收终端发送的当前应用程序页面中多个视图的属性信息;视图包括控件;属性信息包括视图名称和层级信息;获取控件对应的埋点操作,根据属性信息获取被埋点的控件对应的视图路径;根据层级信息,对当前页面中视图分配对应的视图索引,将最高层级视图对应的视图索引至被埋点的控件对应的视图索引逐级拼接,得到索引字符串,将索引字符串作为被埋点的控件的索引路径;将被埋点的控件的视图路径和索引路径发送至终端,使终端在拦截到被触摸控件对应的触摸事件时,根据视图路径和索引路径对被触摸控件和被埋点的控件进行匹配,并在匹配成功时将被触摸控件对应的触摸事件进行上报。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:根据层级信息,对不同层级的控件分别进行单独编号;对同一层级的不同类型的视图分别进行单独编号,将编号作为控件对应的控件索引;当当前应用程序页面新增或删除视图时,对与新增或删除的视图相同类型的视图重新进行单独编号,将编号作为控件对应的控件索引。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,前述计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种控件匹配方法,包括:
获取当前应用程序页面中发生的触摸事件,对所述触摸事件进行拦截;所述触摸事件与所述应用程序的被触摸控件相对应;
获取被触摸控件的视图路径和索引路径;
获取服务器发送的多个被埋点控件的视图路径和索引路径;
将所述被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸控件的索引路径与被埋点控件的索引路径进行匹配;
当所述视图路径和索引路径分别匹配成功时,将所述被触摸控件对应的触摸事件上报至服务器。
2.根据权利要求1所述的方法,其特征在于,所述获取被触摸控件的视图路径和索引路径的步骤,包括:
获取被触摸控件的属性信息;所述属性信息包括视图名称,视图索引以及层级信息;
根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至所述被触摸控件的视图名称逐级拼接,得到目录字符串,将所述目录字符串作为被触摸控件的视图路径;
根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的控视图索引至所述被触摸控件的控视图索引逐级拼接,得到索引字符串,将所述索引字符串作为被触摸控件的索引路径。
3.根据权利要求1所述的方法,其特征在于,所述当被触摸控件与被埋点控件的视图路径和索引路径分别匹配成功时,将被触摸控件对应的触摸事件上报至服务器的步骤,还包括:
当所述被触摸控件与被埋点控件的视图路径或索引路径匹配成功时,获取被触摸控件以及被埋点控件分别对应的图标;
将所述被触摸控件对应的图标和被埋点控件对应的图标压缩至相同尺寸,使压缩后的多个图标具有相同数量的像素点;
利用每个图标中多个像素点的像素值生成得到相应图标对应的像素矩阵;
根据所述被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算所述被触摸控件对应图标和被埋点控件对应图标的相似度;
当相似度达到阈值时,将所述被触摸控件对应的触摸事件上报至服务器。
4.根据权利要求3所述的方法,其特征在于,所述根据所述被触摸控件对应图标的像素矩阵与被埋点控件对应图标的像素矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度的步骤,包括:
根据图标中多个像素点的像素值,计算每个像素点对应的灰度值;
利用每个图标中多个像素点的灰度值生成得到相应图标对应的灰度矩阵;
根据图标中多个像素点的灰度值,计算图标对应的灰度均值;
根据灰度均值对相应灰度矩阵中的多个灰度值进行替换,得到相应图标对应的目标矩阵;
对所述被触摸控件对应图标的目标矩阵与被埋点控件对应图标的目标矩阵进行预设逻辑运算,得到相似度矩阵;
根据所述相似度矩阵,计算被触摸控件对应图标和被埋点控件对应图标的相似度。
5.一种控件匹配方法,包括:
接收终端发送的当前应用程序页面中多个视图的属性信息;所述视图包括控件;所述属性信息包括视图名称和层级信息;
获取控件对应的埋点操作,根据所述属性信息获取被埋点的控件对应的视图路径;
根据所述层级信息,对当前页面中视图分配对应的视图索引,将最高层级视图对应的视图索引至被埋点的控件对应的视图索引逐级拼接,得到索引字符串,将所述索引字符串作为被埋点的控件的索引路径;
将被埋点的控件的视图路径和索引路径发送至所述终端,使终端在拦截到被触摸控件对应的触摸事件时,根据视图路径和索引路径对被触摸控件和被埋点的控件进行匹配,并在匹配成功时将被触摸控件对应的触摸事件进行上报。
6.根据权利要求5所述的方法,其特征在于,所述根据所述层级信息,对当前页面中控件分配对应的视图索引的步骤,包括:
根据所述层级信息,对不同层级的控件分别进行单独编号;
对同一层级的不同类型的视图分别进行单独编号,将所述编号作为控件对应的控件索引;
所述方法还包括:当当前应用程序页面新增或删除视图时,对与新增或删除的视图相同类型的视图重新编号,将重设的编号作为控件对应的控件索引。
7.一种控件匹配装置,其特征在于,所述装置包括:
拦截模块,用于获取当前应用程序页面中发生的触摸事件,对所述触摸事件进行拦截;所述触摸事件与所述应用程序的被触摸控件相对应;
路径获取模块,用于获取被触摸控件的视图路径和索引路径,及获取服务器发送的多个被埋点控件的视图路径和索引路径;
路径匹配模块,用于将所述被触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸控件的索引路径与被埋点控件的索引路径进行匹配;
上报模块,用于当所述视图路径和索引路径分别匹配成功时,将所述被触摸控件对应的触摸事件上报至服务器。
8.根据权利要求7所述的装置,其特征在于,所述路径获取模块还用于获取被触摸控件的属性信息;所述属性信息包括视图名称,视图索引以及层级信息;根据被触摸控件与一个或多个视图的层级信息,利用第一预设标识将最高层级视图的视图名称至所述被触摸控件的视图名称逐级拼接,得到目录字符串,将所述目录字符串作为被触摸控件的视图路径;根据被触摸控件与一个或多个视图的层级信息,利用第二预设标识将最高层级视图的控视图索引至所述被触摸控件的控视图索引逐级拼接,得到索引字符串,将所述索引字符串作为被触摸控件的索引路径。
9.一种计算机设备,包括存储装置及处理器,所述存储装置中储存有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任意一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711058961.8A CN107861655B (zh) | 2017-11-01 | 2017-11-01 | 控件匹配方法、装置、计算机设备和存储介质 |
PCT/CN2017/112661 WO2019085083A1 (zh) | 2017-11-01 | 2017-11-23 | 控件匹配方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711058961.8A CN107861655B (zh) | 2017-11-01 | 2017-11-01 | 控件匹配方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107861655A true CN107861655A (zh) | 2018-03-30 |
CN107861655B CN107861655B (zh) | 2020-07-07 |
Family
ID=61697519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711058961.8A Active CN107861655B (zh) | 2017-11-01 | 2017-11-01 | 控件匹配方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107861655B (zh) |
WO (1) | WO2019085083A1 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213515A (zh) * | 2018-07-12 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 多平台下埋点归一方法及装置和电子设备 |
CN109446069A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 兼容性测试方法、装置、计算机设备和介质 |
CN109522191A (zh) * | 2018-10-16 | 2019-03-26 | 深圳壹账通智能科技有限公司 | 一种采集交互行为指令的属性信息的方法及装置 |
CN110442510A (zh) * | 2019-06-19 | 2019-11-12 | 中国平安财产保险股份有限公司 | 一种页面属性获取方法、装置及计算机设备、存储介质 |
CN110554892A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN110659191A (zh) * | 2019-09-02 | 2020-01-07 | 深圳市随手科技有限公司 | 埋点数据分析方法、装置、计算机设备和存储介质 |
CN110673886A (zh) * | 2018-07-03 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 用于生成热力图的方法和装置 |
CN110851326A (zh) * | 2019-11-08 | 2020-02-28 | 浙江每日互动网络科技股份有限公司 | 一种埋点方法、数据采集方法和装置 |
CN110875876A (zh) * | 2018-09-04 | 2020-03-10 | Oppo广东移动通信有限公司 | 电子红包识别方法、电子红包识别装置及移动终端 |
CN110875869A (zh) * | 2018-08-31 | 2020-03-10 | Oppo广东移动通信有限公司 | 一种红包识别方法、系统及终端设备 |
CN110881002A (zh) * | 2018-09-06 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包监控方法、装置及终端设备 |
CN110881001A (zh) * | 2018-09-06 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包检测方法、系统及终端设备 |
CN110880999A (zh) * | 2018-09-05 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包识别方法、装置及终端设备 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
CN111008052A (zh) * | 2019-10-21 | 2020-04-14 | 爱钱进(北京)信息科技有限公司 | 提供界面图像的方法、装置以及存储介质 |
CN111131369A (zh) * | 2018-11-01 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
CN111338923A (zh) * | 2020-03-03 | 2020-06-26 | 北京新氧科技有限公司 | 埋点曝光处理方法、装置及设备 |
CN111427741A (zh) * | 2020-02-26 | 2020-07-17 | 中国平安人寿保险股份有限公司 | 埋点上报方法及相关产品 |
CN112162739A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于js-sdk的可视化埋点方法及系统 |
CN112416995A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种数据统计方法、装置、计算机设备及存储介质 |
CN113031812A (zh) * | 2021-03-18 | 2021-06-25 | Oppo广东移动通信有限公司 | 触控事件上报方法、装置、终端及存储介质 |
CN113127373A (zh) * | 2021-05-18 | 2021-07-16 | 爱驰汽车有限公司 | 可视化埋点方法、系统、装置、设备及存储介质 |
WO2021164460A1 (zh) * | 2020-02-19 | 2021-08-26 | Oppo广东移动通信有限公司 | 触摸响应方法、装置、电子设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559278B (zh) * | 2019-09-25 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 操作数据的获取方法和装置 |
CN112883250A (zh) * | 2019-11-29 | 2021-06-01 | 阿里巴巴集团控股有限公司 | 生成埋点标识的方法、装置和埋点的方法 |
CN111143184B (zh) * | 2019-12-27 | 2023-11-07 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置及系统 |
CN111552620B (zh) * | 2020-04-03 | 2023-07-11 | 北京字节跳动网络技术有限公司 | 数据获取方法、装置、终端及存储介质 |
CN113761310A (zh) * | 2020-07-07 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种采集点击数据的方法和装置 |
CN113515715B (zh) * | 2020-10-15 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 埋点事件编码的生成方法、处理方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN105391566A (zh) * | 2014-09-04 | 2016-03-09 | 中国移动通信集团黑龙江有限公司 | 一种动态的网络设备配置比对的方法及装置 |
CN105512667A (zh) * | 2014-09-22 | 2016-04-20 | 中国石油化工股份有限公司 | 红外和可见光视频图像融合识别火灾的方法 |
CN106156212A (zh) * | 2015-04-22 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据采集方法和系统、及其终端和服务器 |
CN106445484A (zh) * | 2015-08-12 | 2017-02-22 | 北京高绎信息技术有限公司 | 通过软件开发工具包实现数据跟踪的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102946319B (zh) * | 2012-09-29 | 2015-12-16 | 焦点科技股份有限公司 | 网络用户行为信息分析系统及其分析方法 |
CN107220230A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种信息采集方法和装置,以及一种智能终端 |
CN106776247B (zh) * | 2016-11-23 | 2020-07-14 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及系统 |
-
2017
- 2017-11-01 CN CN201711058961.8A patent/CN107861655B/zh active Active
- 2017-11-23 WO PCT/CN2017/112661 patent/WO2019085083A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN105391566A (zh) * | 2014-09-04 | 2016-03-09 | 中国移动通信集团黑龙江有限公司 | 一种动态的网络设备配置比对的方法及装置 |
CN105512667A (zh) * | 2014-09-22 | 2016-04-20 | 中国石油化工股份有限公司 | 红外和可见光视频图像融合识别火灾的方法 |
CN106156212A (zh) * | 2015-04-22 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据采集方法和系统、及其终端和服务器 |
CN106445484A (zh) * | 2015-08-12 | 2017-02-22 | 北京高绎信息技术有限公司 | 通过软件开发工具包实现数据跟踪的方法及系统 |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554892A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN110673886B (zh) * | 2018-07-03 | 2023-10-03 | 百度在线网络技术(北京)有限公司 | 用于生成热力图的方法和装置 |
CN110673886A (zh) * | 2018-07-03 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 用于生成热力图的方法和装置 |
CN109213515A (zh) * | 2018-07-12 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 多平台下埋点归一方法及装置和电子设备 |
CN109213515B (zh) * | 2018-07-12 | 2021-10-29 | 创新先进技术有限公司 | 多平台下埋点归一方法及装置和电子设备 |
CN110875869B (zh) * | 2018-08-31 | 2022-05-31 | Oppo广东移动通信有限公司 | 一种红包识别方法、系统及终端设备 |
CN110875869A (zh) * | 2018-08-31 | 2020-03-10 | Oppo广东移动通信有限公司 | 一种红包识别方法、系统及终端设备 |
CN110875876A (zh) * | 2018-09-04 | 2020-03-10 | Oppo广东移动通信有限公司 | 电子红包识别方法、电子红包识别装置及移动终端 |
CN110880999A (zh) * | 2018-09-05 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包识别方法、装置及终端设备 |
CN110881002B (zh) * | 2018-09-06 | 2022-06-21 | Oppo广东移动通信有限公司 | 一种电子红包监控方法、装置及终端设备 |
CN110881001B (zh) * | 2018-09-06 | 2022-06-03 | Oppo广东移动通信有限公司 | 一种电子红包检测方法、系统及终端设备 |
CN110881002A (zh) * | 2018-09-06 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包监控方法、装置及终端设备 |
CN110881001A (zh) * | 2018-09-06 | 2020-03-13 | Oppo广东移动通信有限公司 | 一种电子红包检测方法、系统及终端设备 |
CN109446069A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 兼容性测试方法、装置、计算机设备和介质 |
CN109522191A (zh) * | 2018-10-16 | 2019-03-26 | 深圳壹账通智能科技有限公司 | 一种采集交互行为指令的属性信息的方法及装置 |
CN111131369A (zh) * | 2018-11-01 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
CN111131369B (zh) * | 2018-11-01 | 2022-09-27 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
CN110442510A (zh) * | 2019-06-19 | 2019-11-12 | 中国平安财产保险股份有限公司 | 一种页面属性获取方法、装置及计算机设备、存储介质 |
CN112416995B (zh) * | 2019-08-23 | 2023-12-08 | 腾讯科技(深圳)有限公司 | 一种数据统计方法、装置、计算机设备及存储介质 |
CN112416995A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种数据统计方法、装置、计算机设备及存储介质 |
CN110659191B (zh) * | 2019-09-02 | 2023-07-18 | 深圳市铭数信息有限公司 | 埋点数据分析方法、装置、计算机设备和存储介质 |
CN110659191A (zh) * | 2019-09-02 | 2020-01-07 | 深圳市随手科技有限公司 | 埋点数据分析方法、装置、计算机设备和存储介质 |
CN111008052A (zh) * | 2019-10-21 | 2020-04-14 | 爱钱进(北京)信息科技有限公司 | 提供界面图像的方法、装置以及存储介质 |
CN110851326A (zh) * | 2019-11-08 | 2020-02-28 | 浙江每日互动网络科技股份有限公司 | 一种埋点方法、数据采集方法和装置 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
WO2021164460A1 (zh) * | 2020-02-19 | 2021-08-26 | Oppo广东移动通信有限公司 | 触摸响应方法、装置、电子设备及存储介质 |
CN111427741A (zh) * | 2020-02-26 | 2020-07-17 | 中国平安人寿保险股份有限公司 | 埋点上报方法及相关产品 |
CN111338923A (zh) * | 2020-03-03 | 2020-06-26 | 北京新氧科技有限公司 | 埋点曝光处理方法、装置及设备 |
CN111338923B (zh) * | 2020-03-03 | 2024-03-01 | 北京新氧科技有限公司 | 埋点曝光处理方法、装置及设备 |
CN112162739A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于js-sdk的可视化埋点方法及系统 |
CN113031812A (zh) * | 2021-03-18 | 2021-06-25 | Oppo广东移动通信有限公司 | 触控事件上报方法、装置、终端及存储介质 |
CN113127373A (zh) * | 2021-05-18 | 2021-07-16 | 爱驰汽车有限公司 | 可视化埋点方法、系统、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019085083A1 (zh) | 2019-05-09 |
CN107861655B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107861655A (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
CN107818162B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
CN107818163B (zh) | 页面展示方法、装置、计算机设备和存储介质 | |
CN104615731B (zh) | 一种二维码展现方法及系统 | |
KR101325757B1 (ko) | 가상 마커 생성을 이용한 증강 현실 제공 장치 및 방법 | |
CN109101425B (zh) | 一种动态化的页面ab测试的指标埋点方法和装置 | |
US20120194541A1 (en) | Apparatus to edit augmented reality data | |
US20100262916A1 (en) | System and Method For Facilitating User-Generated Content Relating to Social Networks | |
CN105103181A (zh) | 人物选择器 | |
CN106982283A (zh) | 联系人分组处理方法、装置以及移动终端 | |
CN107609122A (zh) | 广告屏蔽规则的更新方法、装置、服务器和存储介质 | |
CN103198144A (zh) | 物联网平台数据管理方法 | |
CN109614565A (zh) | 网页生成方法与装置 | |
CN105824517A (zh) | 一种桌面的实现方法和装置 | |
CN108694324A (zh) | 一种信息泄露监控方法以及装置 | |
CN105915615A (zh) | 一种在移动设备中显示应用信息的方法和装置 | |
CN110007842A (zh) | 网页内容选取方法及装置 | |
CN109271083A (zh) | 数据处理方法和装置、计算设备及存储介质 | |
CN109493046A (zh) | 基于区块链的商机信息共享方法、电子装置及可读存储介质 | |
CN111562870B (zh) | 地图点位图标扩展处理方法及装置 | |
KR101483611B1 (ko) | 이미지에서 객체를 추출하기 위한 방법 및 단말기 | |
CN102402598A (zh) | 应用文件系统访问 | |
CN112558853B (zh) | 会话消息处理方法及装置、电子设备和存储介质 | |
CN114782955A (zh) | 埋点处理方法、电子设备、存储介质 | |
US20110004652A1 (en) | Method and system for enabling a user to vote on a portion of an image and for displaying the image |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |