掌桥专利:专业的专利平台
掌桥专利
首页

一种界面显示方法和电子设备

文献发布时间:2023-06-19 18:37:28


一种界面显示方法和电子设备

技术领域

本申请涉及操作系统领域,特别涉及一种界面显示方法和电子设备。

背景技术

具备触摸输入装置的电子设备,在运行过程中会接收到针对界面上所显示的控件的触摸事件,例如,点击、滑动、双击、缩放、旋转、指针悬浮等。

电子设备接收到触摸事件后会响应触摸事件。一般的,电子设备的显示界面会包含多个触摸控件,电子设备根据触摸事件所针对的触摸控件进行相应的响应。在一种应用场景中,存在保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的需求。例如,在新手指引操作中,用户只能根据页面提示的指引信息,点击界面中指定的按钮跳转到下一界面或者弹出窗口,完成新手指引操作。用户点击除指定按钮以外的其他按钮不会产生任何操作。

因此,需要提供一种界面显示方法,以实现保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的需求。

发明内容

针对如何实现保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的需求,本申请提供了一种界面显示方法和电子设备,本申请还提供一种计算机可读存储介质。

本申请实施例采用下述技术方案:

第一方面,本申请提供一种界面显示方法,所述方法应用于电子设备,所述方法包括:

显示第一界面,所述第一界面包含多个控件,所述多个控件被设定有针对触摸事件的响应;

显示第二界面,所述第二界面覆盖在所述第一界面之上,所述第二界面用于接收指向所述第一界面的触摸事件,其中:

所述第二界面为透明界面,所述第二界面的大小与所述第一界面的大小一致;

所述第二界面的响应逻辑包括:当所述触摸事件的触摸点的位置在可用控件组的控件内时,指示操作系统将所述触摸事件下透到所述第一界面进行响应所述触摸事件的操作,其中,所述可用控件组包含一个或多个控件,所述可用控件组包含的控件为所述多个控件中的部分控件。

在第一方面的一种实现方式中,所述方法还包括,生成所述第二界面,所述生成所述第二界面包括:

创建用于生成第二界面的显示界面模板;

将所述显示界面模板的背景颜色设置为透明;

将所述显示界面模板的界面大小设置为所述第一界面的大小;

为所述显示界面模板设定响应逻辑,生成第二界面。

在第一方面的一种实现方式中,所述创建用于生成第二界面的显示界面模板,包括:

创建继承自UIView的类。

在第一方面的一种实现方式中,将所述可用控件组的控件的引用添加到所述显示界面模板中;

重写所述显示界面模板的触摸传递响应方法。

在第一方面的一种实现方式中,所述重写所述显示界面模板的触摸传递响应方法,其中,所述显示界面模板的触摸传递响应方法执行的逻辑包括:

若判定所述触摸事件的触摸点的位置在所述可用控件组的控件内,返回空值。

在第一方面的一种实现方式中,所述第二界面的响应逻辑还包括:

当所述触摸事件的触摸点的位置不在所述可用控件组的控件内时,指示操作系统调用所述第二界面针对触摸事件的响应逻辑进行响应所述触摸事件的操作,其中,所述第二界面针对触摸事件的响应逻辑为空。

在第一方面的一种实现方式中,所述重写所述显示界面模板的触摸传递响应方法,其中,所述显示界面模板的触摸传递响应方法执行的逻辑包括:

若判定所述触摸事件的触摸点的位置不在所述可用控件组的控件内,返回所述操作系统默认的返回值,所述操作系统默认的返回值用于指示所述操作系统调用所述第二界面针对触摸事件的响应逻辑进行响应所述触摸事件的操作。

在第一方面的一种实现方式中,所述显示第二界面之后,所述方法包括:

基于所述第二界面接收指向所述第一界面的所述触摸事件;

由所述第二界面根据所述第二界面的响应逻辑,针对所述触摸事件进行响应。

第二方面,本申请提供一种电子设备,所述电子设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当所述计算机程序指令被该处理器执行时,触发所述电子设备执行如第一方面所述的方法步骤。

第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。

根据本申请实施例的方法,根据本申请实施例的方法,显示界面不涉及任何循环和递归的逻辑,有效降低了数据处理量和编码难度。

附图说明

图1所示为根据本申请一实施例的方法流程图;

图2所示为根据本申请一实施例的方法流程图;

图3所示为根据本申请一实施例的方法流程图;

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。

针对如何保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的问题,一种可行的方案是,遍历显示界面上每一个控件,将需要响应触摸事件的控件的属性“是否启用用户交互”(isUserInteractionEnabled)设置为开启(true),将其他控件的属性“是否启用用户交互”(isUserInteractionEnabled)设置为关闭(false)。

但是,遍历显示界面上所有控件工作量庞大,非常耗时和耗性能,尤其是当界面较为复杂,控件较多时更是如此。并且,遍历界面控件通常采用循环+递归显示控件框架(UIView)的方式进行,对于操作系统提供的复合控件,也会进行遍历。但操作系统的UIView的某些子View不一定提供对外的访问权限,无需进行这样的遍历和设置。这就导致针对这些控件进行设置后可能造成不可知的后果。

进一步的,显示界面上的很多控件本没有设置对应的触摸事件响应,所以不需要设置isUserInteractionEnabled属性为false,如果这些控件也被设置了,就会造成资源浪费。

进一步的,在对显示界面上的控件的属性进行重设后,当场景需求消失时,还要对UIView再次进行遍历+递归,将所有控件的isUserInteractionEnabled属性设置为原先的值,增加了工作量。

在另一种可行的方案中,可以通过重写显示界面的代码来实现保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的需求。例如,重写显示界面ViewController的根View的hitTest(_:with:)方法。在hitTest(_:with:)中判断,如果触摸事件的点落在需要响应触摸事件的控件内,则返回该控件实例,否则返回空值(nil)。

hitTest(_:with:)方法是操作系统提供给开发人员的方法,目的是找出触摸事件发生时离用户最近的View。当一个触摸事件发生时,操作系统会对界面上的控件逐层调用其hitTest(_:with:)方法,询问是否要响应该触摸事件,如果该方法返回nil,代表本UIView及其子View不响应该触摸事件;如果返回某个控件的实例,代表由该控件及其子View去响应触摸事件,操作系统会继续调用其子View的hitTest(_:with:)方法进行询问。

然而,重写显示界面的代码的方案存在以下问题:

1.如果原有根View的hitTest(_:with:)方法本来就有逻辑,重写hitTest(_:with:)方法就会破坏原有的业务逻辑,增加了代码复杂度。

2.一个显示界面不止由一个ViewController组成,所以需要修改的根View的hitTest(_:with:)方法不止一处,容易出错。

3.一个ViewController不一定只在一个显示界面出现,如果只是其中一个或几个显示界面需要这样的功能,而其他显示界面不需要,还要在hitTest(_:with:)方法中增加ViewController所处显示界面的判断逻辑,极大增加代码复杂性和耦合度,一旦显示界面组织次序有所改动,修改难度较大。

针对如何保持电子设备的显示界面中某个或者某几个控件响应原本拥有的触摸事件,其他所有控件均不响应原本拥有的触摸事件的问题,本申请一实施例提出一种界面显示方法。

具体的,在一应用场景中,电子设备的某一显示界面(第一界面)包含多个控件,多个控件中包含第一控件组(可用控件组)以及第二控件组。其中,第一控件组包含一个或多个控件,第一控件组包含的控件为多个控件中的部分控件。第二控件组包含一个或多个控件,第二控件组包含的控件为多个控件中除去第一控件组包含的控件的部分控件。

第一控件组以及第二控件组中的控件均被设定有针对触摸事件的响应。在一应用需求中,需要保持第一控件组中的控件响应原本拥有的触摸事件,第二控件组中的控件不响应原本拥有的触摸事件。

为实现上述应用需求,在一实施例中,在电子设备显示第一界面后,电子设备在第一界面上覆盖显示一个透明界面(第二界面),针对第一界面上的控件(第一控件组以及第二控件组)的触摸事件仅能直接作用于第二界面,由第二界面判断触摸事件是否能够作用于下方的第一界面上的控件(第一控件组以及第二控件组)。

具体的,图1所示为根据本申请一实施例的方法流程图。电子设备基于图1所示的下述流程生成第二界面。

S101,创建用于生成第二界面的显示界面模板。

以操作系统为例,在S101的一种实现方式中,创建用于生成第二界面的类(显示界面模板)。

具体的,UIView为显示界面上所有控件的根类,显示在屏幕上的大部分对象均继承于UIView。在一实施例中,在S101中,创建一个继承自UIView的类,例如,命名为ViewClear。

S102,将显示界面模板(ViewClear)的背景颜色设置为透明。

具体的,在一种实现方式中,设置ViewClear的背景颜色(backgroundColor)属性为透明(UIColor.clear)。

S103,将显示界面模板(ViewClear)的界面大小设置为第一界面的大小。

具体的,在S103的一种实现方式中,通过自动约束(autolayout)方式或者手动约束(manuallayout)设置ViewClear的界面大小。自动约束(autolayout)方式为系统提供的一种界面设置方式,可以根据界面内容的变化对界面的大小做出相应的调整。

手动约束方式为,通过手动输入ViewClear的界面大小值将ViewClear的界面大小设置为第一界面的大小。(例如,在一实施例中,手动输入ViewClear的界面宽度值width=200px)。

在S103的另一种实现方式中,设置ViewClear的框架属性为第一界面的限制范围(bounds)。第一界面的bounds用于描述在第一界面自身的坐标系下第一界面的大小。

S104,为显示界面模板(ViewClear)设定响应逻辑,生成第二界面(ViewClear实例)。

具体的,在一实施例中,第二界面的响应逻辑为:当触摸事件的触摸点的位置在需要响应触摸事件的控件(第一控件组的控件)内时,指示操作系统将触摸事件下透到其他界面(第一界面)进行响应触摸事件的操作(将触摸事件传达给下方的显示界面);当触摸事件的触摸点的位置在不需要响应触摸事件的控件(第二控件组的控件)内时,指示操作系统不进行响应触摸事件的操作(不将触摸事件传达给下方的显示界面)。

具体的,在S104的一种实现方式中,执行下述步骤S11以及S12。

S11,将第一界面中需要响应触摸事件的控件(第一控件组的控件)的引用添加到显示界面模板中,保证显示界面模板可以访问到第一界面中需要响应触摸事件的控件的内存地址。

具体的,在S11的一种实现方式中,将第一控件组的控件的属性添加到显示界面模板中,添加后显示界面模板的类下面的类属性体现为第一控件组的控件的属性。显示界面模板(ViewClear)通过访问成员变量的方式访问到第一控件组的控件的内存地址。

在S11的另一种实现方式中,第一控件组的控件可以和显示界面模板的类形成关联对象关系(AssociatedObject)。关联对象关系是指一种对象和另一种对象有联系。(例如,A对象的某个属性能够访问到和这个属性关联的B对象,A对象和B对象可以形成关联对象关系)

在显示界面模板的类(或类扩展)中写入对应的set/get方法。在set方法中,调用系统函数objc_setAssociatedObject(_:,_:,_:,_:)将第一控件组的控件和显示界面模板的类进行绑定(形成关联对象关系)。在get方法中,通过调用系统函数()objc_getAssociatedObject(_:,key:)的方式访问到第一控件组的控件。

在S11的一种实现方式中,将第一控件组的控件声明为可读/可写的全局变量。显示界面模板(ViewClear)通过直接访问第一控件组的控件的内容访问到第一控件组的控件的内存地址。

S12,重写显示界面模板的hitTest(_:with:)方法,生成第二界面(ViewClear实例)。

重写后的hitTest(_:with:)方法执行的逻辑为:

判断触摸事件的触摸点的位置是否在需要响应触摸事件的控件(第一控件组的控件)内;

若判定触摸点的位置在需要响应触摸事件的控件(第一控件组的控件)内,返回nil。具体的,nil表示ViewClear实例(第二界面)不响应本次触摸事件,nil不阻止本次触摸事件,指示操作系统下透到其他界面(第一界面)进行响应触摸事件的操作;

若判定触摸点的位置在需要响应触摸事件的控件(第一控件组的控件)外,返回操作系统默认的返回值(例如,调用super.hitTest(_:with:))。具体的,返回操作系统默认的返回值即表明调用ViewClear实例(第二界面)自身。因为hitTest(_:with:)的默认机制为找到当前视图层级中距离用户最近的界面。ViewClear实例(第二界面)在视图层级的最上层,ViewClear实例(第二界面)为距离用户最近的界面。

由于ViewClear实例(第二界面)是视图层级最上层的View,并且ViewClear实例(第二界面)没有任何针对触摸事件的响应逻辑,操作系统对触摸事件不会生成响应。

进一步的,在另一应用需求中,需要保持第一控件组中的控件响应原本拥有的触摸事件,第二控件组中的控件不响应原本拥有的触摸事件(第一触摸事件),但是,第二控件组中的控件响应预设的第二触摸事件,第二触摸事件为与控件原本拥有的触摸事件不同的触摸事件。

例如,假设第一控件组包含第一控件,第一控件的原始设置为响应点击事件;第二控件组包含第二控件,第二控件的原始设置为响应点击事件。应用需求为:第一控件继续响应点击事件;第二控件不再响应点击事件,第二控件响应滑动事件。

针对上述应用需求,在一实施例中,在电子设备显示第一界面后,电子设备在第一界面上覆盖显示一个透明界面(第二界面),针对第一界面上的控件(第一控件组以及第二控件组)的触摸事件仅能直接作用于第二界面,由第二界面判断触摸事件是否能够作用于下方的第一界面上的控件(第一控件组以及第二控件组)。

具体的,执行S101~S104生成第二界面。第二界面的响应逻辑为:当触摸事件的触摸点的位置在第一控件组的控件内时,指示操作系统将触摸事件下透到其他界面(第一界面)进行响应触摸事件的操作;当触摸事件的触摸点的位置在第二控件组的控件内时,识别触摸事件是否为对应控件的预设的第二触摸事件,如果触摸事件为对应控件的预设触摸事件,指示操作系统按照控件针对第一触摸事件的响应执行响应操作。

具体的,在S104的一种实现方式中,执行下述步骤S21、S22及S23。

S21,将第一界面中需要响应触摸事件的控件(第一控件组以及第二控件组的控件)的引用添加到显示界面模板中,保证显示界面模板可以访问到第一界面中的控件的引用。

S22,重写显示界面模板的hitTest(_:with:)方法,生成第二界面(ViewClear实例)。

重写后的hitTest(_:with:)方法执行的逻辑为:

确认触摸事件的触摸点的位置;

若触摸点的位置在第一控件组的控件内,返回nil。具体的,nil表示ViewClear实例(第二界面)不响应本次触摸事件,nil不阻止本次触摸事件,指示操作系统下透到其他界面(第一界面)进行响应触摸事件的操作;

若触摸点的位置在第二控件组的控件内,返回操作系统默认的返回值(例如,调用super.hitTest(_:with:))。具体的,返回操作系统默认的返回值即表明调用ViewClear实例(第二界面)自身。

S23,在显示界面模板(ViewClear)中加入触摸事件响应,生成第二界面(ViewClear实例)。

具体的,在S23的一种实现方式中,在显示界面模板(ViewClear)上加对应的手势,从而响应对应的触摸事件。比如:如果在ViewClear上加入点击手势UITapGestureRecognizer,则就可以响应点击手势;如果在ViewClear上加入滑动手势UIPanGestureRecognizer,则就可以响应点击手势;如果加入更复杂的自定义手势,则可以响应自定义手势。

在S23的另一种实现方式中,对ViewClear重写触摸事件的几个事件,即touchesBegan(_:with:),touchesMoved(_:with:),touchesEnded(_:with:),touchesCancelled(_:with:)实现自定义的手势。

图2所示为根据本申请一实施例的界面显示方法流程图。电子设备执行图2所示的下述流程以实现界面显示。

S201,显示第一界面。

S202,将第二界面(ViewClear实例)覆盖到第一界面上。

具体的,在S202的一种实现方式中,获取第一界面下的父界面控制器(ViewController),根据父界面控制器获取第一界面的根界面(View)。对第一界面的根界面调用addSubView(_:)方法(addSubView(:)方法执行的逻辑为添加子界面)。根据addSubView(:)方法将ViewClear实例(第二界面)作为子界面添加到第一界面的根界面。对第一界面的根界面调用bringSubviewToFront(:)方法(bringSubviewToFront(:)方法执行的逻辑为置顶子界面)。根据bringSubviewToFront(:)方法置顶ViewClear实例(第二界面),覆盖原有的第一界面。

在S202的另一种实现方式中,获取APP当前窗口。对APP当前窗口调用addSubView方法。根据addSubView方法将ViewClear实例(第二界面)作为子界面添加到APP当前窗口,对APP当前窗口调用bringSubviewToFront(:)方法。根据bringSubviewToFront(:)方法置顶ViewClear实例(第二界面),覆盖APP当前窗口。

具体的,获取APP当前窗口的方式由应用程序编程接口(ApplicationProgramming Interface,API)提供(API用于实现操作系统和App之间的相互通信)。

具体的,在一实施例中,操作系统调用UIApplication.shared.keyWindow方法,获取App的当前窗口。

在一实施例中,操作系统遍历当前的所有APP界面(UIApplication.shared.connectedScenes),根据遍历的内容获取属性为前景活动(foregroundActive)的APP窗口。属性为前景活动(foregroundActive)的APP窗口即为APP的当前窗口。

图3为根据本申请一实施例的方法流程图。

在S202之后,电子设备执行如图3所示的下述流程以实现对触摸事件的响应。

S301,接收触摸事件,触摸事件作用于顶层的第二界面。

S302,第二界面判断触摸事件的触摸点的位置是否在需要响应触摸事件的控件内。

具体的,若为是,则判定触摸事件的触摸点的位置在需要响应触摸事件的控件内,执行S303。

若为否,则判定触摸事件的触摸点的位置不在需要响应触摸事件的控件内,执行S305。

S303,第二界面返回nil。参照S104。

S304,操作系统调用第二界面下方其他界面(第一界面)的hitTest(_:with:)方法。参照S104。

S305,返回操作系统默认的返回值(例如,super.hitTest(_:with:))。参照S104。

S306,操作系统调用第二界面自身的响应逻辑(不响应,或者,其他预设的响应逻辑)。参照S104。

根据本申请实施例的方法,可以保持显示界面中某个或者某几个控件可以响应它原本拥有的触摸事件,而其他所有控件都不响应他们原本拥有的触摸事件。本申请实施例的方法对原有显示界面不做任何修改,直接利用新界面的hitTest(_:with:)方法达到目的,适用于任何界面,具有很强的兼容性。进一步的,本申请实施例的方法不涉及任何循环和递归的逻辑,有效降低了数据处理量和编码难度。

在本申请实施例的方法流程可以按照功能,通过各种模块分别实现,各个模块的划分仅仅是一种逻辑功能的划分,在实施本申请实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

具体的,本申请实施例所提出的装置在实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,检测模块可以为单独设立的处理元件,也可以集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个数字信号处理器(Digital Singnal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,这些模块可以集成在一起,以片上装置(System-On-a-Chip,SOC)的形式实现。

本申请一实施例还提出了一种电子设备,电子设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发电子设备执行如本申请实施例所述的方法流程。

具体的,在本申请一实施例中,上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述设备执行时,使得上述设备执行本申请实施例所述的方法步骤。

具体的,在本申请一实施例中,电子设备的处理器可以是片上装置SOC,该处理器中可以包括中央处理器(Central Processing Unit,CPU),还可以进一步包括其他类型的处理器。具体的,在本申请一实施例中,电子设备的处理器可以是PWM控制芯片。

具体的,在本申请一实施例中,涉及的处理器可以例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units,NPU)和图像信号处理器(Image Signal Processing,ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储介质中。

具体的,在本申请一实施例中,电子设备的存储器可以是只读存储器(read-onlymemory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何计算机可读介质。

具体的,在本申请一实施例中,处理器可以和存储器可以合成一个处理装置,更常见的是彼此独立的部件,处理器用于执行存储器中存储的程序代码来实现本申请实施例所述方法。具体实现时,该存储器也可以集成在处理器中,或者,独立于处理器。

进一步的,本申请实施例阐明的设备、装置、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。

在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

具体的,本申请一实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。

本申请一实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。

本申请中的实施例描述是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。

本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以意识到,本申请实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请公开的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120115633237