CN110968432B - 一种控件事件处理方法、装置及可读存储介质 - Google Patents

一种控件事件处理方法、装置及可读存储介质 Download PDF

Info

Publication number
CN110968432B
CN110968432B CN201811152010.1A CN201811152010A CN110968432B CN 110968432 B CN110968432 B CN 110968432B CN 201811152010 A CN201811152010 A CN 201811152010A CN 110968432 B CN110968432 B CN 110968432B
Authority
CN
China
Prior art keywords
target
layer
control event
target control
event
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.)
Active
Application number
CN201811152010.1A
Other languages
English (en)
Other versions
CN110968432A (zh
Inventor
艾牤宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811152010.1A priority Critical patent/CN110968432B/zh
Publication of CN110968432A publication Critical patent/CN110968432A/zh
Application granted granted Critical
Publication of CN110968432B publication Critical patent/CN110968432B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Train Traffic Observation, Control, And Security (AREA)

Abstract

本发明提供了一种控件事件处理方法、装置及可读存储介质。在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递;在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。

Description

一种控件事件处理方法、装置及可读存储介质
技术领域
本发明涉及电子技术领域,尤其涉及一种控件事件处理方法、装置及可读存储介质。
背景技术
随着电子设备技术的不断发展,各种电子设备被广泛应用于人们的日常生活中,电子设备中可以安装各类的应用程序,为人们的生活带来便利的同时,也为用户带来更多的娱乐。随着应用程序的功能越来越强大,页面对应的视图层级设计越来越复杂,层级越来越多,导致位于页面的控件的事件处理越来越复杂。现有的针对UI控件事件处理,通常采用delegate代理或者block 传递方式,这样的方式在实现时会产生很多冗余代码。
发明内容
本发明实施例提供了一种控件事件处理方法、装置及可读存储介质,用以减少控件处理时的冗余代码。
第一方面,本发明实施例提供了一种控件事件处理方法,包括:
在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
在所述目标控件事件与所述目标参数传递至预设层时,拦截所述目标控件事件,添加所述预设层对应的状态参数至所述初始参数后形成目标参数,将所述目标控件事件与所述目标参数继续沿着所述响应链向上层传递;
在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,基于所述目标参数对所述目标控件事件进行预设处理。
可选的,所述在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递,包括:
在检测到第一控件被触发情况下,获得所述第一控件的视图层级信息;
如果所述视图层级信息表明所述第一控件的视图层级大于预设数值,将所述第一控件作为目标控件,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
可选的,所述在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,包括:
在所述目标控件事件向上传递至每一层时,判断当前层是否能响应所述目标控件事件;
如果是,确定所述当前层为目标层,拦截所述目标控件事件。
可选的,所述基于所述目标参数对所述目标控件事件进行预设处理,包括:
基于所述目标参数,确定所述目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与所述目标标识对应的目标处理方法;
通过所述目标处理方法对所述目标控件事件进行预设处理。
第二方面,本发明实施例还提供一种控件事件处理装置,包括:
传递单元,用于在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
添加单元,用于在所述目标控件事件与所述目标参数传递至预设层时,拦截所述目标控件事件,添加所述预设层对应的状态参数至所述初始参数后形成目标参数,将所述目标控件事件与所述目标参数继续沿着所述响应链向上层传递;
处理单元,用于在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,基于所述目标参数对所述目标控件事件进行预设处理。
可选的,所述传递单元具体用于:
在检测到第一控件被触发情况下,获得所述第一控件的视图层级信息;
如果所述视图层级信息表明所述第一控件的视图层级大于预设数值,将所述第一控件作为目标控件,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
可选的,所述处理单元具体用于:
在所述目标控件事件向上传递至每一层时,判断当前层是否能响应所述目标控件事件;
如果是,确定所述当前层为目标层,拦截所述目标控件事件。
可选的,所述确定单元具体用于:
基于所述目标参数,确定所述目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与所述目标标识对应的目标处理方法;
通过所述目标处理方法对所述目标控件事件进行预设处理。
第三方面,本发明实施例提供一种控件事件处理装置,所述控件事件处理装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前述第一方面实施例中所述的控件事件处理方法的步骤。
第四方面,本发明实施例提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面实施例中所述的控件事件处理方法的步骤。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递,在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递,在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。本实施例中的方法,为了将嵌套列表内较深层级的控件事件传递到最上层的控制器内统一处理,并且避免声明冗余代理或传递block的方式,借助操作系统的响应链机制,可以将目标控件事件按响应链逐层向上传递至目标层进行处理,并且,结合装饰器模式可添加对应层的状态参数,由于仅需对系统提供的响应链机制(UIResponder类)进行方法扩展,写入的代码较少,设计简单高效,能有效较少空间处理的冗余代码,提高控件响应速度。
附图说明
图1为本发明第一实施例中的控件事件处理方法的流程图;
图2为本发明第二实施例中的控件事件处理装置的示意图;
图3为本发明第三实施例中控件事件处理装置的示意图。
具体实施方式
本发明实施例提供了一种控件事件处理方法、装置及可读存储介质,用以降低随机播放模式下随机播放的多媒体信息的重复率,该方法包括:在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递;在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
请参考图1,本发明第一实施例提供一种控件事件处理方法,该控件事件处理方法包括如下步骤:
S101:在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
S102:在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递;
S103:在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。
具体的,本实施例中,控件事件处理方法可以应用于智能手机、平板电脑之类的移动终端,还可以应用于台式计算机等设备,当然,还可以应用于其它电子设备,在此,本申请不做限制。
电子设备中安装有操作系统,例如安卓系统、iOS(苹果公司的移动操作系统),还安装有各类的应用程序,应用程序的页面中会有许多的视图控件 (UIbutton),由于页面的视图层级设计可能会比较复杂,所以,有些控件的视图层级较深。本实施例,借助于操作系统的响应链机制,对于视图层级较深的控件对应的事件进行传递。操作系统提供了响应链机制,可以用于事件传递,例如:iOS系统的事件响应链机制大致分为两种情况,第一种是接收事件的初始视图,如果初始视图不能处理该事件,并且它不是顶层的View(视图),则事件会往它的父View进行传递。初始视图的父View获取事件后如果仍不能处理,则继续往上传递,循环这个过程。如果顶层的View还是不能处理这个事件的话,则会将事件传递给它们的ViewController(视图控制器),如果 ViewController也不能处理,则传递给UIWindow(视图窗口),此时如果 UIWindow不能处理该事件,就将事件传递给根UIApplication(视图应用),最后如果根UIApplication也不能处理,则废弃该事件。
第二种方式是,如果ViewController是有层级关系的,那么当子 ViewController不能处理事件时,它会将事件继续往上传递,直到传递到其根 ViewController,如果根ViewController也不能处理,则传递给UIWindow(视图窗口),此时如果UIWindow不能处理该事件,就将事件传递给根 UIApplication(视图应用),最后如果根UIApplication也不能处理,则废弃该事件。
首先,本实施例中,需要确定当前被触发的第一控件是否为目标控件,再具体实施过程中其实现方式可包括但不限于以下两种:
第一种:在检测到第一控件被触发情况下,获得第一控件的视图层级信息。如果该视图层级信息表明第一控件的视图层级大于预设数值,将第一控件作为目标控件。例如:功能页面中的A视图区域中包括B视图区域,B视图区域中有C控件。则C控件的视图层级为3级。预设数值为2,则可以认为是个视图层级较深的控件。在具体实施过程中,预设数值可根据实际需要进行设定,在此,本申请不做限制。进而,对于目标控件,采用本实施例中的响应链机制进行事件处理,而针对其他控件,视图层级不深的控件,可按原有的代理或block方式进行事件处理。
第二种:在客观明确各控件的设计架构情况下,可以预先将某些控件标记为目标控件类型,目标控件类型所包含的所有控件都可以认作目标控件。在检测到第一控件被触发情况下,获得第一控件的控件标识,基于该控件标识判断该第一控件是否属于目标控件类,如果是,则可将第一控件作为目标控件。
进而,在确定当前被触发的第一控件为目标控件情况下,通过步骤S101,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
具体的,在本实施例中,操作系统的响应链是由很多响应者链接在一起的。一个事件的响应开始于用户触发的响应者(UIView等),最后在 UIApplication结束。如果一个响应者不响应事件,则事件会沿着事件响应链逐层向顶层传递。所有的响应者(UIApplication、UIView、UIViewController) 的基类都是UIResponder(响应器)。iOS视图按照一定的结构组织起来构成树状结构,除了根视图没有父视图之外,剩下的视图都有大于或者等于零个子视图,而每个视图构成了响应链上的响应者。所以,针对目标控件,会根据其视图结构,按响应链机制传至顶层的视图控制器进行处理。例如:buttonA 是一个视图层级较深的按键,即是目标控件。可以为了将它的点击事件传递到控制器内处理,在其target实现方法内调用以下逻辑:
/**
@param eventName事件名称,建议定义为常量
@param userInfo需要传递给上层的参数,key建议定义为常量
**/
(void)buttonADidClick(UIButton*)sender{
[self.nextResponder er_routerEventWithName:kButtonADidClickEventName u
serInfo:@{kSenderKey:sender}];
}
其中er_routerEventWithName方法是定义在UIResponder一个自定义分类中的一个方法,具体实现为:
(void)er_routerEventWithName:(NSString*)eventName userInfo:(NSDictionary*)
userInfo{
[self.nextResponder er_routerEventWithName:eventName userInfo:userInfo];
}
因为UIView和UIViewController都是UIResponder的子类,这样,可以实现将事件一直传递到最上层的UIResponder进行处理。
进而,通过步骤S102,在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递。
具体的,在本实施例中,可以结合装饰器模式在预设层,即中间切面层进行拦截,添加该中间切面层的状态参数,并继续向上层传递。预设层是需要添加参数的层级。目标控件上传至每一层时,该层需要确定是否需要添加状态参数,如果不需要,目标控件事件直接向上一层传递,如果需要添加参数,则拦截添加状态参数后再继续向上层传递。沿用前述示例,实现的代码如下:
(void)er_routerEventWithName:(NSString*)eventName userInfo:(NSDictionary*)
userInfo{
//拦截事件的传递
if([eventName isEqualToString:kButtonADidClickEventName]){
//在中间切面层拦截,加载 viewCode参数到初始参数userInfo中,形成目标参数
NSMutableDictionary*userInfoNew=[NSMutableDictionary dictionaryWithDictionary:userInfo];
[userInfoNew setObject:@"redView"forKey:kViewCodeKey];
//继续往上层传递
[self.nextResponder er_routerEventWithName:eventName userInfo:userInfoNew];
}
}
最后,在通过步骤S103,在目标控件事件传递至目标层时,拦截该目标控件事件进行对应的处理。具体的,目标控件的事件在从底层逐层向上层传递过程中,在目标控件事件向上传递至每一层时,判断当前层是否能响应目标控件事件;如果是,确定当前层为目标层,拦截目标控件事件。
具体的,在本实施例中,由于响应链机制中事件的传递会沿着树状结构从子视图向根视图来进行传递,当目标控件事件沿着树状结构向上层传递过程中,传递至每一层,都会判断该层是否能够响应该目标控件事件,如果当前层能够响应该目标控件事件,就可以将其作为目标层,进而拦截目标控件事件进行相应处理。沿用前述针对buttonA的示例,在需要处理事件的地方进行拦截,事件不再往上层继续传递。其实现的具体代码如下:
(void)er_routerEventWithName:(NSString*)eventName userInfo:(NSDictionary*)
userInfo{
//拦截事件的传递
if([eventName isEqualToString:kButtonADidClickEventName]){
UIButton*sender=[userInfo objectForKey:kSenderKey];
[sender setHighlighted:YES];
}
if([eventName isEqualToString:xxxxxx]){
//其他事件处理
.....
}
....
}
上述程序中,用if-else的语句列举出了所有目标控件事件的处理方式,这样,在目标层拦截到目标控件事件后,可以基于该目标控件事件的事件名称,去匹配到对应的处理方式,但这样需要将所有的事件对应的处理方式均用if-else的语句列举出,增加了许多冗余代码。本实施例中,步骤S103中的基于目标参数对目标控件事件进行预设处理,在具体实施过程中可通过如下步骤实现:
基于目标参数,确定目标控件事件的目标标识;基于标识与处理方法间的索引关系,确定与目标标识对应的目标处理方法;通过目标处理方法对目标控件事件进行预设处理。
具体的,在本实施例中,为了避免在目标层最后拦截时使用过多的if-else 进行判断,可以结合策略模式对目标控件事件进行预设处理。可以预先注册各个事件对应的处理方法,建立其索引关系。具体的,各个事件设定有与之对应的事件标识(如:事件名称),建立事件标识与处理方法间的对应关系。这样,在目标层拦截到目标控件事件后,根据目标控件事件的目标标识,即可确定出与之对应的目标处理方法,进而根据该目标处理方法对目标控件事件进行预设处理。沿用前述针对buttonA的示例,可通过如下程序实现:
(void)er_routerEventWithName:(NSString*)eventName userInfo:(NSDictionary*)
userInfo{
[self.eventInvocationHandler handleEvent:eventName withParameter:userIn fo];
}
本实施例中的方法,为了将嵌套列表内较深层级的控件事件传递到最上层的控制器内统一处理,并且避免声明冗余代理或传递block的方式,借助操作系统的响应链机制,可以将目标控件事件按响应链逐层向上传递至目标层进行处理,并且,结合装饰器模式可添加对应层的状态参数,由于仅需对系统提供的响应链机制进行方法扩展,写入的代码较少,设计简单高效,能有效较少空间处理的冗余代码,提高控件响应速度。
请参见图2,本发明的第二实施例提供了一种控件事件处理装置,包括:
传递单元201,用于在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
添加单元202,用于在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递;
处理单元203,用于在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。
在一种可选实现方式中,传递单元具体用于:
在检测到第一控件被触发情况下,获得第一控件的视图层级信息;
如果视图层级信息表明第一控件的视图层级大于预设数值,将第一控件作为目标控件,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
在一种可选实现方式中,处理单元具体用于:
在目标控件事件向上传递至每一层时,判断当前层是否能响应目标控件事件;
如果是,确定当前层为目标层,拦截目标控件事件。
在一种可选实现方式中,确定单元具体用于:
基于目标参数,确定目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与目标标识对应的目标处理方法;
通过目标处理方法对目标控件事件进行预设处理。
请参见图3,本发明的第三实施例提供了一种控件事件处理装置,该实施例的装置包括:处理器301、存储器302以及存储在存储器中并可在处理器上运行的计算机程序,例如第一实施例中控件事件处理方法对应的程序。处理器执行计算机程序时实现上述第一实施例中控件事件处理方法中的步骤。或者,处理器执行计算机程序时实现上述第二实施例的装置中各模块/单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,示意图3仅仅是计算机装置的示例,并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circt,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器302可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
进一步,该装置所包括的处理器301还具有以下功能:
在检测到目标控件被触发情况下,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
在目标控件事件与目标参数传递至预设层时,拦截目标控件事件,添加预设层对应的状态参数至初始参数后形成目标参数,将目标控件事件与目标参数继续沿着响应链向上层传递;
在目标控件事件与目标参数传递至目标层时,拦截目标控件事件,基于目标参数对目标控件事件进行预设处理。
进一步,该装置所包括的处理器301还具有以下功能:
在检测到第一控件被触发情况下,获得第一控件的视图层级信息;
如果视图层级信息表明第一控件的视图层级大于预设数值,将第一控件作为目标控件,基于操作系统的响应链机制,将目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
进一步,该装置所包括的处理器301还具有以下功能:
在目标控件事件向上传递至每一层时,判断当前层是否能响应目标控件事件;
如果是,确定当前层为目标层,拦截目标控件事件。
进一步,该装置所包括的处理器301还具有以下功能:
基于目标参数,确定目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与目标标识对应的目标处理方法;
通过目标处理方法对目标控件事件进行预设处理。
本发明第四实施例提供了一种计算机可读存储介质,其上存储有计算机程序,本发明第二实施例中的所述控件事件处理装置集成的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例的控件事件处理方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种控件事件处理方法,其特征在于,包括:
在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
在所述目标控件事件与目标参数传递至预设层时,拦截所述目标控件事件,添加所述预设层对应的状态参数至所述初始参数后形成目标参数,将所述目标控件事件与所述目标参数继续沿着所述响应链向上层传递,包括:所述预设层为中间切面层,是需要添加参数的层级;结合装饰器模式在中间切面层进行拦截,添加该中间切面层的状态参数,并继续向上层传递;
在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,基于所述目标参数对所述目标控件事件进行预设处理。
2.如权利要求1所述的方法,其特征在于,所述在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递,包括:
在检测到第一控件被触发情况下,获得所述第一控件的视图层级信息;
如果所述视图层级信息表明所述第一控件的视图层级大于预设数值,将所述第一控件作为目标控件,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
3.如权利要求1所述的方法,其特征在于,所述在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,包括:
在所述目标控件事件向上传递至每一层时,判断当前层是否能响应所述目标控件事件;
如果是,确定所述当前层为目标层,拦截所述目标控件事件。
4.如权利要求1所述的方法,其特征在于,所述基于所述目标参数对所述目标控件事件进行预设处理,包括:
基于所述目标参数,确定所述目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与所述目标标识对应的目标处理方法;
通过所述目标处理方法对所述目标控件事件进行预设处理。
5.一种控件事件处理装置,其特征在于,包括:
传递单元,用于在检测到目标控件被触发情况下,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递;
添加单元,用于在所述目标控件事件与目标参数传递至预设层时,拦截所述目标控件事件,添加所述预设层对应的状态参数至所述初始参数后形成目标参数,将所述目标控件事件与所述目标参数继续沿着所述响应链向上层传递,包括:所述预设层为中间切面层,是需要添加参数的层级;结合装饰器模式在中间切面层进行拦截,添加该中间切面层的状态参数,并继续向上层传递;
处理单元,用于在所述目标控件事件与所述目标参数传递至目标层时,拦截所述目标控件事件,基于所述目标参数对所述目标控件事件进行预设处理。
6.如权利要求5所述的装置,其特征在于,所述传递单元具体用于:
在检测到第一控件被触发情况下,获得所述第一控件的视图层级信息;
如果所述视图层级信息表明所述第一控件的视图层级大于预设数值,将所述第一控件作为目标控件,基于操作系统的响应链机制,将所述目标控件对应的目标控件事件与初始参数沿着响应链逐层向上传递。
7.如权利要求5所述的装置,其特征在于,所述处理单元具体用于:
在所述目标控件事件向上传递至每一层时,判断当前层是否能响应所述目标控件事件;
如果是,确定所述当前层为目标层,拦截所述目标控件事件。
8.如权利要求5所述的装置,其特征在于,所述处理单元具体用于:
基于所述目标参数,确定所述目标控件事件的目标标识;
基于标识与处理方法间的索引关系,确定与所述目标标识对应的目标处理方法;
通过所述目标处理方法对所述目标控件事件进行预设处理。
9.一种控件事件处理装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-4中任一项所述的控件事件处理的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的控件事件处理方法的步骤。
CN201811152010.1A 2018-09-29 2018-09-29 一种控件事件处理方法、装置及可读存储介质 Active CN110968432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811152010.1A CN110968432B (zh) 2018-09-29 2018-09-29 一种控件事件处理方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811152010.1A CN110968432B (zh) 2018-09-29 2018-09-29 一种控件事件处理方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN110968432A CN110968432A (zh) 2020-04-07
CN110968432B true CN110968432B (zh) 2022-11-11

Family

ID=70027525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811152010.1A Active CN110968432B (zh) 2018-09-29 2018-09-29 一种控件事件处理方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN110968432B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379976A (zh) * 2020-11-16 2021-02-19 上海瑞家信息技术有限公司 一种事件处理方法、装置、移动终端及存储介质
CN113204445B (zh) * 2021-05-10 2024-04-19 北京奇艺世纪科技有限公司 用于崩溃定位的信息传送方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842212A (en) * 1996-03-05 1998-11-24 Information Project Group Inc. Data modeling and computer access record memory
CN102117223A (zh) * 2011-02-22 2011-07-06 哈尔滨工业大学 利用异步通知实现lxi载板应用程序对m模块中断响应的方法
CN106126355A (zh) * 2016-06-22 2016-11-16 百度在线网络技术(北京)有限公司 基于iOS系统的事件传递方法和装置
CN108228159A (zh) * 2018-02-02 2018-06-29 中国银行股份有限公司 一种基于响应链的对象交互方法及系统
CN108563477A (zh) * 2018-03-02 2018-09-21 北京奇艺世纪科技有限公司 一种页面事件响应方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013188337A2 (en) * 2012-06-12 2013-12-19 Risk Management Solutions, Inc. Predicting and managing impacts from catastrophic events

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842212A (en) * 1996-03-05 1998-11-24 Information Project Group Inc. Data modeling and computer access record memory
CN102117223A (zh) * 2011-02-22 2011-07-06 哈尔滨工业大学 利用异步通知实现lxi载板应用程序对m模块中断响应的方法
CN106126355A (zh) * 2016-06-22 2016-11-16 百度在线网络技术(北京)有限公司 基于iOS系统的事件传递方法和装置
CN108228159A (zh) * 2018-02-02 2018-06-29 中国银行股份有限公司 一种基于响应链的对象交互方法及系统
CN108563477A (zh) * 2018-03-02 2018-09-21 北京奇艺世纪科技有限公司 一种页面事件响应方法和装置

Also Published As

Publication number Publication date
CN110968432A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
US11962510B2 (en) Resource watermarking and management
US9544400B2 (en) Manipulating binary large objects
US20110119361A1 (en) System and method for managing redacted electronic documents using callback triggers
WO2020093289A1 (zh) 资源推荐方法、装置、电子设备及存储介质
US20200257749A1 (en) Method and a device for friend recommendation
WO2017167121A1 (zh) 确定及运用应用程序之间的关系关联的方法及装置
CN110245116A (zh) 对账数据处理方法、装置、设备及计算机可读存储介质
US20170149686A1 (en) Resource watermarking and management
CN110968432B (zh) 一种控件事件处理方法、装置及可读存储介质
US20170277526A1 (en) Software categorization method and electronic device
CN108829526B (zh) 一种进程间通信方法、电子设备及可读存储介质
CN111581502A (zh) 一种信息通知方法及装置
CN108540375B (zh) 资源传播方法、装置、服务器及计算机可读存储介质
CN109725887B (zh) 基于消息研发框架的数据交互方法、装置及终端设备
WO2022078397A1 (zh) 通信的方法、装置、设备及存储介质
CN107908710B (zh) 一种文件接收管理方法、装置、终端设备及存储介质
CN109032693A (zh) 一种加载展示信息方法、装置、电子设备及可读存储介质
CN112257038A (zh) 课件防盗方法、系统、电子设备及存储介质
CN108616603B (zh) 一种内外网数据同步方法和系统
CN111090789A (zh) 基于二维码的会话窗口唤起方法、装置及存储介质
CN112948142B (zh) 用于确定目标反馈信息的方法、设备、介质及程序产品
US10681509B2 (en) Service processing method and terminal
US10541963B2 (en) Common message sending method, electronic device, and storage medium
CN110337074B (zh) 一种交互信息的传输方法、系统及终端设备
CN113568943A (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
GR01 Patent grant
GR01 Patent grant