本申请涉及计算机技术领域,特别涉及一种检测方法、装置、计算机设备及存储介质。
背景技术:
随着计算机技术的不断发展,应用可以为人们提供越来越多的功能,在应用中可以调用目标对象,该目标对象可以是一个网页,也可以是原生应用的一个功能,还可以是其他对象,例如,应用从当前网页跳转到另一网页中,或者,在应用中调用蓝牙、摄像头等对象,但是在调用目标对象时可能会出现调用失败的情况。
技术实现要素:
本申请实施例提供了一种检测方法、装置、计算机设备及存储介质,能够提高检测方法的通用性。该技术方案如下:
一方面,提供了一种检测方法,该方法包括:
通过目标应用接收调用指令,所述调用指令包括目标对象的对象标识;
根据所述调用指令,在所述目标应用的原生代码native中注册检测任务,所述检测任务包括所述对象标识;
在所述检测任务创建完成之后,根据所述调用指令,调用所述目标对象;
基于所述检测任务监听调用所述目标对象的过程,得到调用结果,所述调用结果为调用成功或调用失败。
在一种可能实现方式中,所述通过所述检测任务监听调用所述目标对象的过程,得到调用结果,包括:
基于所述检测任务监听调用所述目标对象的过程,得到调用记录数据;
根据所述调用记录数据是否满足检测要求,获取所述调用结果,
所述检测要求基于以下至少一项得到:
重定向跟随数量;
调用时长;
响应代码白名单;
调用所述目标对象后跳转的页面渲染成功。
在一种可能实现方式中,所述根据所述调用记录数据是否满足所述至少一个检测要求,获取所述调用结果之后,所述方法还包括:
响应于所述调用结果为调用失败,根据所述调用记录数据不满足的检测要求,重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述响应于所述调用结果为调用失败,根据所述调用记录数据不满足的检测要求,重新调用所述目标对象或降级处理,包括:
响应于所述调用结果为调用失败,确定所述调用记录数据不满足的检测要求对应的重新调用方式;
按照所述重新调用方式,重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述基于所述检测任务监听调用所述目标对象的过程,得到调用结果之后,所述方法还包括:
输出重新调用提示页面,所述重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;
响应于对任一选项的触发操作,按照所述选项对应的调用方式重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述重新调用提示页面还包括调用所述目标对象失败的原因提示信息,所述原因提示信息包括调用所述目标对象的过程不满足的检测要求。
在一种可能实现方式中,响应于所述调用结果为调用失败,根据回调标识,跳转到所述回调标识对应的网页,在所述网页中重新调用所述目标对象,其中,所述回调标识由所述目标应用接收的调用指令中解析得到。
一方面,提供了一种检测装置,该装置包括:
接收模块,用于通过目标应用接收调用指令,所述调用指令包括目标对象的对象标识;
注册模块,用于根据所述调用指令,在所述目标应用的原生代码native中注册检测任务,所述检测任务包括所述对象标识;
调用模块,用于在所述检测任务创建完成之后,根据所述调用指令,调用所述目标对象;
监听模块,用于基于所述检测任务监听调用所述目标对象的过程,得到调用结果,所述调用结果为调用成功或调用失败。
在一种可能实现方式中,所述监听模块,包括:
监听单元,用于基于所述检测任务监听调用所述目标对象的过程,得到调用记录数据;
获取单元,用于根据所述调用记录数据是否满足检测要求,获取所述调用结果,所述检测要求基于以下至少一项得到:
重定向跟随数量;
调用时长;
响应代码白名单;
调用所述目标对象后跳转的页面渲染成功。
在一种可能实现方式中,所述调用模块,还用于响应于所述调用结果为调用失败,根据所述调用记录数据不满足的检测要求,重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述调用模块,包括:
确定单元,用于响应于所述调用结果为调用失败,确定所述调用记录数据不满足的检测要求对应的重新调用方式;
调用单元,用于按照所述重新调用方式,重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述装置还包括:
显示模块,用于输出重新调用提示页面,所述重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;
所述调用模块,还用于响应于对任一选项的触发操作,按照所述选项对应的调用方式重新调用所述目标对象或降级处理。
在一种可能实现方式中,所述重新调用提示页面还包括调用所述目标对象失败的原因提示信息,所述原因提示信息包括调用所述目标对象的过程不满足的检测要求。
在一种可能实现方式中,所述装置还包括:
显示模块,用于响应于所述调用结果为调用失败,根据回调标识,跳转到所述回调标识对应的网页,在所述网页中重新调用所述目标对象,其中,所述回调标识由所述目标应用接收的调用指令中解析得到。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条指令,该至少一条指令由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的检测方法所执行的操作。
一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该至少一条指令由处理器加载并执行以实现如上述任一种可能实现方式的检测方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的检测方法、装置、计算机设备及存储介质,通过在原生代码native中注册检测任务,从而在调用目标对象的过程中,可以通过native进行监听,无论目标对象是网页还是原生功能,均可以对调用目标对象的过程进行监听,从而使得该检测方法更具有通用性。
另外,本申请实施例在调用目标对象失败的时候,可以选择重新调用目标对象,还可以选择降级处理,并且无论是重新调用目标对象,还是选择降级处理调用其他对象,均可以使得服务继续,从而保证了服务的连续性。
另外,本申请实施例在获取调用结果之后,若调用结果为调用目标对象失败,可以向用户显示调用失败的原因,并向用户提供多种调用方式,以便用户可以根据调用失败的原因,选择一种调用方式,重新调用目标对象或降级处理,避免了用户在遇到调用目标对象失败时,只能终止该服务的问题。
另外,本申请实施例在获取调用结果之后,若调用结果为调用目标对象失败,可以自动根据调用失败的原因,选择一种调用方式,重新调用目标对象或降级处理,无需用户手动操作,尽可能地保证了服务的连续性。并且可以根据调用失败的原因,自动进行处理,能够应对调用失败的突发情况,从而提高了调用系统的鲁棒性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的检测方法流程图;
图3是本申请实施例提供的检测方法流程图;
图4是本申请实施例提供的检测方法流程图;
图5是本申请实施例提供的检测装置结构示意图;
图6是本申请实施例提供的检测装置结构示意图;
图7是本申请实施例提供的终端的结构示意图;
图8是本申请实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的检测方法,可以应用于计算机设备,该计算机设备可以为手机、平板电脑、台式电脑等任一具有安装应用功能的终端。终端上安装有目标应用,通过目标应用接收调用指令,根据该调用指令,在目标应用的原生代码native中注册检测任务,该检测任务包括目标对象的对象标识,在检测任务创建完成之后,根据调用指令,调用目标对象;基于检测任务监听调用目标对象的过程,得到调用结果,该调用结果为调用成功或调用失败。
当目标对象为网页时,终端调用该目标对象即是终端从当前网页跳转到另一网页,该另一网页可以由终端在服务器中获取。图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括:终端101和服务器102。
其中,终端101可以为手机、平板电脑、台式电脑等任一安装有目标应用功能的电子设备,服务器102可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务器中心,本申请实施例对此不做限定。
在一种可能实现方式中,目标对象为网页,终端调用目标对象的过程可以包括:终端将目标对象的对象标识发送至服务器,由服务器根据该对象标识将目标对象下发至终端,终端接收该目标对象,在显示屏幕中显示该目标对象。
本申请实施例提供的检测方法可以应用至任一终端已安装的应用中:
例如,应用于hybrid(混合模式)移动应用中:
在hybrid应用中可以调用其他网页,也可以调用原生native功能,采用本申请实施例提供的检测方法,不仅可以对调用网页的过程进行监听,还可以对调用原生功能的过程进行监听,从而可以对调用任一对象的过程进行监听,更具有通用性,另外,还可以得到调用对象的调用结果,后续可以基于调用结果对hybrid应用做出改进。
又如,应用于原生应用中:
在原生应用中可以调用其他原生应用中的某些功能,采用本申请实施例提供的检测方法,可以对调用其他应用的原生功能的过程进行监听,从而得到调用结果,后续可以根据调用结果对与原生应用做出改进。
图2是本申请实施例提供的一种检测方法的流程图。应用于终端,参见图2,该实施例包括:
201、通过目标应用接收调用指令,该调用指令包括目标对象的对象标识。
202、根据该调用指令,在该目标应用的原生代码native中注册检测任务,该检测任务包括该对象标识。
203、在该检测任务创建完成之后,根据该调用指令,调用该目标对象。
204、基于该检测任务监听调用该目标对象的过程,得到调用结果,该调用结果为调用成功或调用失败。
本申请提供的检测方法,通过在原生代码native中注册检测任务,从而在调用目标对象的过程中,可以通过native进行监听,无论目标对象是网页还是原生功能,均可以对调用目标对象的过程进行监听,从而使得该检测方法更具有通用性。
在一种可能实现方式中,通过该检测任务监听调用该目标对象的过程,得到调用结果,包括:
基于该检测任务监听调用该目标对象的过程,得到调用记录数据;
根据该调用记录数据是否满足检测要求,获取该调用结果,检测要求基于以下至少一项得到:
重定向跟随数量;
调用时长;
响应代码白名单;
调用目标对象后跳转的页面渲染成功。
在一种可能实现方式中,该根据该调用记录数据是否满足检测要求,获取该调用结果之后,该方法还包括:
响应于该调用结果为调用失败,根据该调用记录数据不满足的检测要求,重新调用该目标对象或降级处理。
在一种可能实现方式中,该响应于该调用结果为调用失败,根据该调用记录数据不满足的检测要求,重新调用该目标对象,包括:
响应于该调用结果为调用失败,确定该调用记录数据不满足的检测要求对应的重新调用方式;
按照该重新调用方式,重新调用该目标对象。
在一种可能实现方式中,该基于该检测任务监听调用该目标对象的过程,得到调用结果之后,该方法还包括:
输出重新调用提示页面,该重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;
响应于对任一选项的触发操作,按照该选项对应的调用方式重新调用该目标对象或降级处理。
在一种可能实现方式中,该重新调用提示页面还包括调用该目标对象失败的原因提示信息,该原因提示信息包括调用该目标对象的过程不满足的检测要求。
在一种可能实现方式中,响应于所述调用结果为调用失败,根据回调标识,跳转到所述回调标识对应的网页,在所述网页中重新调用所述目标对象,其中,所述回调标识由所述目标应用接收的调用指令中解析得到。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是本申请实施例提供的一种检测方法的流程图。应用于终端,参见图3,该实施例包括:
301、通过目标应用接收调用指令,调用指令包括目标对象的对象标识。
其中,目标应用为安装在终端上的任一应用,可以为电子支付类应用、即时通信应用、竞技类应用等任一种类型的应用,本申请实施例对目标应用不做限定。目标应用具有调用其他对象,来为用户提供服务的功能,例如,目标应用可以调用其他网页,目标应用调用其他网页使得目标应用从当前网页跳转至其他网页中;目标应用还可以调用原生应用的某个功能等目标应用调用原生应用的某个功能可以为调用摄像头、调用蓝牙等。
目标对象可以是为用户提供服务的任一对象,可以为网页,也可以为原生应用的某个功能,本申请实施例对目标对象不做限定。目标对象的对象标识为确定唯一目标对象的标识,可以为对象id(identity,身份标识号码)或对象url(uniformresourelocator,统一资源定位器)等,本申请实施例对对象标识不做限定。
调用指令用于指示目标应用调用的目标对象,该调用指令包括目标对象的对象标识,该调用指令可以由用户在目标应用中触发。在一种可能实现方式中,目标应用的显示界面中包括调用选项,响应于对调用选项的触发操作,通过目标应用接收到调用指令。
例如,目标应用的显示界面中包括“人脸识别”选项,响应于对该“人脸识别”选项的触发操作,通过目标应用接收到调用指令,该调用指令用于调用原生应用的拍摄功能,该调用指令携带摄像头标识。
又如,目标应用的显示界面中包括“第一应用支付”选项,响应于对“第一应用支付”选项的触发操作,通过目标应用接收到调用指令,该调用指令用于调用第一应用的支付页面,该调用指令携带该支付页面的页面标识。
302、根据调用指令,在目标应用的原生代码native中注册检测任务,检测任务包括对象标识和检测要求。
目标应用可以通过调用目标对象为用户提供服务,若调用目标对象失败,则会导致目标应用提供的服务中断。例如,目标应用为电子商务类应用,目标应用可以为用户提供各种商品(实体商品或者虚拟商品)以供选择和购买,若用户为想要购买的商品进行付款,则目标应用可以调用相应的电子支付类应用的支付页面,从而用户可以在该支付页面上进行支付,完成付款之后,当前页面可以再跳转至目标应用的支付完成页面。但是若调用相应的电子支付类应用的支付页面失败,则可能会出现白屏、加载错误等情况,导致目标应用为用户提供的服务中断,还有可能会导致客户流失或者客户投诉。
该过程中,在调用电子支付类应用的支付页面时,相当于已经脱离了目标应用,因此,目标应用无法感知调用电子支付类应用失败的问题。目前,相关技术中在webview(网页视图)所在的容器中添加了iframe(一种标签),可以通过该iframe对网页的加载过程进行超时检测,但是该iframe仅能对自身应用的网页跳转进行检测,但是若调用其他应用的网页,则iframe无法进行检测。
为了解决这个技术问题,本申请实施例提供一种通用性的检测方法,在接收到调用指令之后,在目标应用的native中注册检测任务,后续通过native对调用目标对象的过程进行监听,若被调用的对象为原生应用的某个功能,则需要通过native来实现调用的,因此,native可以监听对原生应用的某个功能的调用过程;而在hybird应用中,是通过webview组件来实现显示被调用的网页的,而native可以对webview组件进行监听,从而实现了监听调用其他网页的过程。因此,在native中注册检测任务,由native进行监听具有通用性。
检测目标应用调用目标对象是否成功是通过对目标应用调用目标对象的过程进行监听,得到调用记录数据,根据调用记录数据确定调用目标对象是否成功。因此,可以设置与调用记录数据对应的检测要求,基于该检测要求和调用记录数据,监听调用目标对象是否成功,在一种可能实现方式中,在目标应用的native中注册检测任务,可以包括:在native中注册检测队列,该检测队列至少包括目标对象的对象标识和检测要求。该对象标识用于指示被调用的目标对象,该检测要求用于指示native判定调用目标对象成功或者失败的要求。
在一种可能实现方式中,该检测要求基于重定向跟随数量、调用时长、响应代码白名单、调用目标对象后跳转的页面渲染成功中的至少一项得到。
需要说明的是,本申请实施例仅是重定向跟随数量、调用时长、响应代码白名单、调用目标对象后跳转的页面渲染成功,对检测要求进行示例性说明,检测要求还可以包括其他参数,本申请实施例对此不做限定。
303、将第一网页的标识确定为回调标识,该第一网页为用于触发调用指令的网页。
响应于目标应用调用目标对象失败,可能会出现白屏、无响应的情况,从而导致目标应用提供的服务中断,在服务中断之后,目标应用无法跳转至服务中断之前的上一个节点的,也即是,目标应用无法跳转至触发调用指令的页面。例如,用户在目标应用的支付方式选择界面中触发了调用指令,终端调用第一应用的支付页面,但是若第一应用的支付页面调用失败之后,目标应用无法跳转到支付方式选择界面,从而也无法重新调用目标对象。
因此,可以将第一网页的标识确定为回调标识,在目标应用中保存该回调标识,这样目标应用程序可以基于回调标识跳转至触发调用指令的页面。
在一种可能实现方式中,将第一网页的标识确定为回调标识,可以包括:在native中注册回调队列,该回调队列至少包括回调标识。若基于回调标识不能还原触发调用指令的页面时,该回调队列还可以包括其他参数,通过其他参数和调用网页标识,使得目标应用显示触发调用指令的页面。本申请实施例对包括的其他参数不做限定。
例如,第一网页为目标应用的支付方式选择界面,该支付方式选择界面包括至少一个支付方式选项,还包括待支付的资源数量,若仅将该支付方式选择界面的网页标识存储至回调队列中,再次显示该支付方式选择界面时,可能无法获取待支付的资源数量,因此还可以将待支付的资源数量和网页标识一同存储在回调队列中,以便目标应用根据待支付的资源数量和网页标识生成相应的支付方式选择界面。
需要说明的是,上述步骤303是本申请实施例的一个可选步骤,可以根据需求选择执行或者不执行,若执行上述步骤303,则在调用目标对象失败之后,可以基于回调标识跳转至触发调用指令的页面,也即回到服务中断的上一个节点,从而可以继续进行调用;若不执行步骤303,在调用目标对象失败之后,目标应用会中断服务流程,用户可以通过操作跳转至其他页面,重新开始一个服务。
需要说明的另一点是,当执行上述步骤303时,可以同时执行上述步骤302和步骤303,如图4所示;也可以是先执行步骤302,再执行步骤303;还可以是先执行步骤303,再执行步骤302,本申请实施例对此不做限定。
304、在检测任务创建完成之后,根据调用指令,调用目标对象。
由于检测任务用于监听调用目标对象的调用过程,因此,需要在检测任务创建完成之后,调用目标对象。
调用指令包括目标对象的对象标识,在一种可能实现方式中,目标对象为网页,对象标识为网页标识,根据调用指令,调用目标对象可以包括:若目标对象为网页,则该对象标识可以为网页标识,终端可以在网页视图容器中,渲染该网页标识对应的网页;其中,网页视图容器可以是现有的网页视图容器,也可以是根据调用指令新生成的网页视图容器。
在另一种可能实现方式中,目标对象为原生应用的某一功能,对象标识可以为该功能标识,该功能标识可以为与该功能对应的一个字符串,根据调用指令,调用目标对象可以包括:向native发送调用消息,该调用消息携带该功能标识,native根据该功能标识,调用该功能对应的代码;或者,向操作系统发出调用消息,该调用消息携带该功能标识,操作系统根据该功能标识,调用相应的原生代码。
需要说明的是,根据调用指令,调用目标对象的方式包括多种,本申请实施例对调用目标对象的方式不做限制,可以是相关技术提供的任一种方式,本申请实施例在此不再一一赘述。
305、基于检测任务监听调用目标对象的过程,得到调用记录数据。
其中,调用记录数据是在调用目标对象的过程中产生的数据,并且成功调用目标对象的过程中产生的调用记录数据与未成功调用目标对象的过程中产生的调用数据不同,因此,可以基于调用记录数据,确定是否成功调用目标对象。
306、根据调用记录数据是否满足检测要求,获取调用结果。
其中,根据调用记录数据是否满足检测要求,可以包括以下至少一项,但不限于以下至少一项:
(1)若检测要求基于重定向跟随页面数量得到,根据该数量个重定向跟随页面的调用结果,确定该调用记录数据是否满足该检测要求。
响应于目标应用调用目标对象,终端可能会进入一个页面,并且在该页面中可能会不断进入下一个页面。例如,电子商务类应用调用电子支付类应用的支付功能时,会依次进入订单确认页面、密码输入页面、支付确认页面、支付结果页面。此时可以将密码输入页面、支付确认页面和支付结果页面认为是订单确认页面的重定向跟随页面,若重定向跟随页面调用失败,目标应用提供的服务也会失败,因此可以综合预设数目个重定向跟随页面的调用结果,来确定目标对象的调用结果。该预设数目可以是重定向跟随页面数量的最大值,也可以是任一数值。例如,该重定向跟随数量可以是3、4、5等不小于1的任一整数。
在一种可能实现方式中,若目标对象的预设数目个重定向跟随页面均调用成功,则满足该检测要求;若目标对象的预设数目个重定向跟随页面中有任一页面调用失败,则不满足该检测要求。
例如,预设数目为3时,目标对象有5个重定向跟随页面,终端在调用第5个重定向跟随页面时调用失败,则调用记录数据满足该检测要求;若预设数目为3时,目标对象有5个重定向跟随页面,终端在调用第2个重定向跟随页面时调用失败,则调用记录数据不满足该检测要求。
(2)若检测要求基于调用时长得到时,则根据调用目标对象的时长确定调用记录数据是否满足该检测要求。
目标应用调用目标对象,若在一段时间内未成功调用目标对象,则可以认为调用目标对象失败,因此,还可以将调用时长作为检测要求。在该时长内终端可以调用目标对象一次,也可以调用多次,本申请实施例不做限定。
在一种可能实现方式中,若调用目标对象的时长大于调用时长,则调用数据不满足该检测要求;若调用目标对象的时长不大于调用时长时,则调用数据满足该检测要求。
(3)若检测要求基于响应代码白名单得到,则根据接收到的响应代码是否属于响应代码白名单,确定该调用记录是否满足该检测要求。
调用网页的时候,服务器将页面内容下发至目标应用,还会向目标应用发送响应代码,该响应代码可以指示调用网页成功或者失败,响应代码白名单为指示调用网页成功的响应代码集合,可以包括多个响应代码,也可以包括响应代码的阈值范围。
在一种可能实现方式中,若接收到的响应代码属于响应代码白名单,确定该调用记录满足该检测要求;若接收到的响应代码不属于响应代码白名单,确定该调用记录不满足该检测要求。
其中,接收到的响应代码属于响应代码白名单可以是指:接收到的响应代码为响应代码白名单的代码,或者接收到的响应代码的数值属于响应代码白名单的阈值范围。
(4)若检测要求基于终端的显示内容,确定该调用记录是否满足检测要求。
在调用目标对象之后,目标应用的页面会发生变化,例如,在目标应用调用摄像头之后,会在目标应用的页面上渲染一个显示框,在该显示框用于显示摄像头拍摄的图像;又如,在目标应用调用另一网页后,目标应用渲染该另一网页的页面,因此,可以将调用目标对象后跳转的页面渲染成功作为检测要求。并且,若调用目标对象失败,可能还会在显示页面上显示失败的关键字或者相应图片,还可以根据终端页面中显示的关键字或者图片指示的成功或者失败来确定页面是否渲染成功。
在一种可能实现方式中,若终端显示的页面中未检测到显示内容,则确定该调用记录不满足检测要求;若检测到终端显示的页面中显示内容包括失败的关键字或者相应的图片时,则确定该调用记录不满足检测要求;若检测到终端显示的页面中显示内容包括成功的关键字或者相应的图片时,则确定该调用记录满足检测要求。
若调用记录数据满足上述检测要求,则确定目标对象调用成功;若调用记录数据不满足上述检测要求中的任一项要求时,则确定目标对象调用失败。
需要说明的是,本申请仅是以步骤302、步骤305和步骤306为例对注册检测任务,基于检测任务监听调用目标对象的过程,得到调用结果的过程进行说明,而在另一实施例中,终端根据调用指令,在目标应用的native中注册检测任务,基于该检测任务监听调用目标对象的过程,得到调用结果,该调用结果为调用成功或调用失败。
307、响应于调用结果为调用失败,根据回调标识,跳转到回调标识对应的网页。
其中,回调标识可以是存储在回调队列中的标识,也可以是目标应用接收到的调用指令中解析得到的标识。其中,调用指令可以是用户触发调用目标对象时生成的,也可以是终端在调用目标对象失败之后生成的另一调用指令,该调用指令用于调用回调标识对应的网页。
响应于调用结果为调用失败,可以获取存储的回调标识,根据该回调标识,跳转至回调标识对应的网页,也即是跳转至服务中断的上一个节点。
在本申请实施例中,在确定调用结果为调用失败之后,还可以根据调用记录数据未满足的检测要求,生成调用目标对象失败的原因提示信息,在回调标识对应的网页中显示该原因提示信息。例如,该原因提示信息可以为“当前网络状态不佳,调用网页失败,请重新检测网络后重试”,还可以为“多次调用目标对象失败,请调用能够实现目标对象所能实现功能的第二对象”。
308、在该网页中重新调用该目标对象或降级处理。
在一种可能实现方式中,终端上有多个对象能够实现某一功能,也就是说调用该多个对象中的任一对象均可实现该功能,但是每个对象的参数并不相同,实现该功能的效果也不相同,可以根据每个对象实现功能的效果,确定每个对象的优先级,其中,调用对象实现功能的效果越好,该对象的优先级越高。其中,目标对象实现该功能的效果最优,降级处理是指:若调用目标对象失败,则可以调用优先级仅次于目标对象的第二对象,若调用第二对象失败,则调用优先级仅次于第二对象的第三对象,按照该多个对象的优先级,依次进行调用,直至调用对象成功。
在另一种可能实现方式中,终端上有多个对象能够实现某一功能,目标对象是该多个对象中的任一对象。降级处理是指:调用指令中包括该目标对象的对象标识,如果调用目标对象失败,那么可以调用多个对象中除目标对象之外的其他任一对象。其中,多个对象可以没有优先级之分,也可以没有实现功能的效果之分,当根据调用指令调用目标对象失败时,可以从多个对象中选择出目标对象之外的其他任一对象,由于调用指令中包括的是目标对象的对象标识,最终调用的是其他对象,可以将这种调用处理方式看做是降级处理。
在该网页中重新调用该目标对象或降级处理时,可以由用户触发调用,也可以由终端触发调用。在一种可能实现方式中,该网页的页面中包括至少一个选项,每一个选项对应一种调用方式;响应于对任一选项的触发操作,按照选项对应的调用方式重新调用该目标对象或降级处理。其中,触发操作可以是点击操作、滑动操作、长按操作等任一操作,本申请实施例出触发操作的具体形式不做限定。
其中,在该网页上可以显示原因提示信息,用户可以根据该原因提示信息,确定对任一选项进行触发操作。例如,原因提示信息为“当前网络状态不佳,调用第一应用的支付网页失败”,此时用户可以确认一下网络的连接状态,重新发起调用第一应用的支付网页的过程,也即是选择调用第一应用的支付网页对应的选项,从而重新调用该目标对象;又如,原因提示信息为“第一应用崩溃,调用第一应用的支付网页失败”,用户可以根据该原因提示信息,选择调用第二应用的支付网页对应的选项,从而实现降级处理。
在另一张可能实现方式中,响应于调用结果为调用失败,确定调用记录数据不满足的检测要求对应的重新调用方式,按照该重新调用方式,重新调用该目标对象或降级处理。
目标对象可以为活体检测服务,例如,目标对象为人脸识别服务,在调用目标应用的人脸识别服务失败时,可以根据调用记录数据不满足的检测要求确定相应的重新调用方式,按照该重新调用方式,重新调用该目标对象。按照该重新调用方式,重新调用该目标对象可以包括:若未找到目标对象,可以根据步骤304提供的多种调用方式,更换上一次的调用方式,重新调用该目标对象。若找到目标对象,但是目标对象调用失败时,可以采用上一次的调用方式,重新调用该目标对象。
在调用目标应用的人脸识别服务失败时,还可以根据调用记录数据不满足的检测要求确定相应的重新调用方式,按照该重新调用方式,进行降级处理。在一种可能实现方式中,响应于调用目标应用的人脸识别服务失败,根据调用记录数据不满足的检测要求,确定重新调用第二应用的人脸识别服务。其中,目标应用与第二应用为不同的应用。其中,调用记录数据不满足的检测要求可以为调用时长、调用失败次数等检测要求,本申请实施例对此不做限定。
本申请实施例仅是以人脸识别服务进行举例说明,若目标对象不是活体检测服务时,本申请提供的方法还可以适用于其他场景中。
需要说明的是,在本申请实施例中,仅是以回调至原来的网页,在该网页的基础上进行回调,而在另一实施例中,可以显示任一页面,或者生成一个新的页面,将该页面作为重新调用提示页面。在一种可能实现方式中,显示重新调用提示页面,该重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;响应于用户对任一选项的触发操作时,按照选项对应的调用方式重新调用该目标对象或降级处理。在一种可能实现方式中,重新调用提示页面还包括调用目标对象失败的原因提示信息,该原因提示信息包括调用目标对象的过程不满足的检测要求。
在该调用提示页面中可以由用户根据原因提示信息重新选择一种调用方式来调用该目标对象,也可以由终端根据调用记录数据不满足的检测要求对应的重新调用方式,按照该重新调用方式,重新调用该目标对象或降级处理。
需要说明的是,在一种可能实现方式中,本申请实施例中在调用目标对象成功之后,可以将该目标对象的检测任务删除,节省资源,而调用目标对象失败之后,可能还会重新调用,因此,可以保留该检测任务,若重新调用目标对象,则继续使用这个检测任务,若调用其他目标对象,则将该目标对象的检测任务删除,或者使用该检测任务监听调用其他目标对象的过程。
需要说明的是,在获取调用结果之后,还可以将调用结果上传至日志服务器,该调用结果可以包括调用的目标对象的对象标识,目标应用的应用标识、终端标识、调用时长、调用记录数据、调用失败原因等至少一项。后续开发人员可以根据调用结果,对目标应用程序进行改进。另外,在一种可能实现方式中,还可以将调用结果以及用户选择的重新调用方式一同上传至日志服务器,后续开发人员可以根据调用结果以及用户选择的重新调用方式,对终端自动重新调用目标对象或降级处理的方式进行改善。
本申请实施例提供的检测方法,通过在原生代码native中注册检测任务,从而在调用目标对象的过程中,可以通过native进行监听,无论目标对象是网页还是原生功能,均可以对调用目标对象的过程进行监听,从而使得该检测方法更具有通用性。
另外,本申请实施例在获取到调用结果之后,可以将调用结果上传至日志服务器中,以便后续开发人员可以对目标应用或者调用方式作出改进;并且还可以将调用结果和用户选择的重新调用方式上传至日志服务器中,以便开发人员根据用户选择的重新调用方式,实现终端自动重新调用目标对象,或者对终端自动重新调用目标对象的方式作出改进。
另外,本申请实施例在调用目标对象失败的时候,可以选择重新调用目标对象,还可以选择降级处理,并且无论是重新调用目标对象,还是选择降级处理调用其他对象,均可以使得服务继续,从而保证了服务的连续性,从而保证了服务的连续性。
另外,本申请实施例在获取调用结果之后,若调用结果为调用目标对象失败,可以向用户显示调用失败的原因,并向用户提供多种调用方式,以便用户可以根据调用失败的原因,选择一种调用方式,重新调用目标对象或降级处理,避免了用户在遇到调用目标对象失败时,只能终端该服务的问题。
另外,本申请实施例在获取调用结果之后,若调用结果为调用目标对象失败,可以由终端自动根据调用失败的原因,选择一种调用方式,重新调用目标对象或降级处理,无需用户手动操作,尽可能地保证了服务的继续进行。并且可以根据调用失败的原因,自动进行处理,能够应对调用失败的突发情况,从而提高了调用系统的鲁棒性。
图5是本申请实施例提供的检测装置结构示意图,参见图5,该装置包括:
接收模块501,用于通过目标应用接收调用指令,该调用指令包括目标对象的对象标识;
注册模块502,用于根据该调用指令,在该目标应用的原生代码native中注册检测任务,该检测任务包括该对象标识;
调用模块503,用于在该检测任务创建完成之后,根据该调用指令,调用该目标对象;
监听模块504,用于基于该检测任务监听调用该目标对象的过程,得到调用结果,该调用结果为调用成功或调用失败。
如图6所示,在一种可能实现方式中,该监听模块504,包括:
监听单元5041,用于基于该检测任务监听调用该目标对象的过程,得到调用记录数据;
获取单元5042,用于根据所述调用记录数据是否满足检测要求,获取所述调用结果,该检测要求基于以下至少一项得到:
重定向跟随数量;
调用时长;
响应代码白名单;
调用目标对象后跳转的页面渲染成功。
在一种可能实现方式中,该调用模块503,还用于响应于该调用结果为调用失败,根据该调用记录数据不满足的检测要求,重新调用该目标对象或降级处理。
在一种可能实现方式中,该调用模块503,包括:
确定单元5031,用于响应于该调用结果为调用失败,确定该调用记录数据不满足的检测要求对应的重新调用方式;
调用单元5032,用于按照该重新调用方式,重新调用该目标对象或降级处理。
在一种可能实现方式中,该装置还包括:
显示模块505,用于输出重新调用提示页面,该重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;
该调用模块503,还用于响应于对任一选项的触发操作,按照该选项对应的调用方式重新调用该目标对象或降级处理。
在一种可能实现方式中,该重新调用提示页面还包括调用该目标对象失败的原因提示信息,该原因提示信息包括调用该目标对象的过程不满足的检测要求。
在一种可能实现方式中,该装置还包括:
显示模块505,用于响应于所述调用结果为调用失败,根据回调标识,跳转到所述回调标识对应的网页,在所述网页中重新调用所述目标对象,其中,所述回调标识由所述目标应用接收的调用指令中解析得到。
需要说明的是:上述实施例提供的检测装置在进行检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的检测装置与检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7示出了本申请一个示例性实施例提供的终端700的结构框图。该终端700可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的检测方法。
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位终端700的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件708可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制触摸显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3d动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在终端700的侧边框和/或触摸显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在触摸显示屏705的下层时,由处理器701根据用户对触摸显示屏705的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商logo时,指纹传感器714可以与物理按键或厂商logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制触摸显示屏705的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏705的显示亮度;当环境光强度较低时,调低触摸显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制触摸显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制触摸显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图8是本申请实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)801和一个或一个以上的存储器802,其中,该存储器1002中存储有至少一条指令,该至少一条指令由该处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中检测方法。例如,该计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序,该计算机程序包括至少一条指令,该指令由处理器加载并执行以实现如上述实施例中检测方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.一种检测方法,其特征在于,所述方法包括:
通过目标应用接收调用指令,所述调用指令包括目标对象的对象标识;
根据所述调用指令,在所述目标应用的原生代码native中注册检测任务,所述检测任务包括所述对象标识;
在所述检测任务创建完成之后,根据所述调用指令,调用所述目标对象;
基于所述检测任务监听调用所述目标对象的过程,得到调用结果,所述调用结果为调用成功或调用失败。
2.根据权利要求1所述的方法,其特征在于,所述通过所述检测任务监听调用所述目标对象的过程,得到调用结果,包括:
基于所述检测任务监听调用所述目标对象的过程,得到调用记录数据;
根据所述调用记录数据是否满足检测要求,获取所述调用结果,所述检测要求基于以下至少一项得到:
重定向跟随数量;
调用时长;
响应代码白名单;
调用所述目标对象后跳转的页面渲染成功。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调用记录数据是否满足检测要求,获取所述调用结果之后,所述方法还包括:
响应于所述调用结果为调用失败,根据所述调用记录数据不满足的检测要求,重新调用所述目标对象或降级处理。
4.根据权利要求3所述的方法,其特征在于,所述响应于所述调用结果为调用失败,根据所述调用记录数据不满足的检测要求,重新调用所述目标对象或降级处理,包括:
响应于所述调用结果为调用失败,确定所述调用记录数据不满足的检测要求对应的重新调用方式;
按照所述重新调用方式,重新调用所述目标对象或降级处理。
5.根据权利要求3所述的方法,其特征在于,所述基于所述检测任务监听调用所述目标对象的过程,得到调用结果之后,所述方法还包括:
输出重新调用提示页面,所述重新调用提示页面包括至少一个选项,每一个选项对应一种调用方式;
响应于对任一选项的触发操作,按照所述选项对应的调用方式重新调用所述目标对象或降级处理。
6.根据权利要求5所述的方法,其特征在于,所述重新调用提示页面还包括调用所述目标对象失败的原因提示信息,所述原因提示信息包括调用所述目标对象的过程不满足的检测要求。
7.根据权利要求1所述的方法,其特征在于,
响应于所述调用结果为调用失败,根据回调标识,跳转到所述回调标识对应的网页,在所述网页中重新调用所述目标对象,其中,所述回调标识由所述目标应用接收的调用指令中解析得到。
8.一种检测装置,其特征在于,所述装置包括:
接收模块,用于通过目标应用接收调用指令,所述调用指令包括目标对象的对象标识;
注册模块,用于根据所述调用指令,在所述目标应用的原生代码native中注册检测任务,所述检测任务包括所述对象标识;
调用模块,用于在所述检测任务创建完成之后,根据所述调用指令,调用所述目标对象;
监听模块,用于基于所述检测任务监听调用所述目标对象的过程,得到调用结果,所述调用结果为调用成功或调用失败。
9.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求7任一项所述的检测方法所执行的操作。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至权利要求7任一项所述的检测方法所执行的操作。
技术总结