autojs 如何获取控件的desc_埋点全解 5 :控件点击事件全埋点

本文详细介绍了在 AutoJS 中利用 Target-Action 模式实现控件点击事件($AppClick)的全埋点。通过交换 UIApplication 的 -sendAction:to:from:forEvent: 方法或交换 UIView 的 -didMoveToSuperview 方法,分别阐述了两种实现方案,同时分析了各自的优缺点。
摘要由CSDN通过智能技术生成

de1fd5469fd91a5c40afd6c914fd1f32.png

1、原理概述

在本章,我们主要介绍如何实现控件点击事件 ($AppClick)的全埋点。在介绍如何实现之前,我们需要 先了解一下,在 UIKit 框架下,处理点击或拖动事件的 Target-Action 设计模式。

(1)Target-Action

Target-Action,也叫目标-动作模式,即当某个事件发生 的时候,调用特定对象的特定方法。

比如,在 LoginViewController 页面,有一个按钮,点击 按 钮 时,会 调 用 LoginViewController 里 的 - loginBtnOnClick 方法,“特定对象”就是 Target,“特定 方法”就是 Action。也即 Target 是 LoginViewController, Action 是 - loginBtnOnClick 方法。

Target-Action 设计模式主要包含两个部分:

  • Target 对象:接收消息的对象
  • Action 方法:用于表示需要调用的方法

Target 对象可以是任意类型的对象。但是在 iOS 应用程序 中,通常情况下会是一个控制器,而触发事件的对象和 Target 对象一样,也可以是任意对象。例如,手势识别器 UIGestureRecognizer 就可以在识别到手势后,将消息发 送给另一个对象。Target-Action 设计模式,最常见的应 用场景还是在控件中。iOS 中的控件都是 UIControl 类或 者其子类,当用户在操作这些控件时,会将消息发送到指 定的对象(Target),而对应的 Action 方法必须符合以下 几种形式之一:

 - (void)doSomething; 
- (void)doSomething:(id)sender; 
- (void)doSomething:(id)sender forEvent:(UIEvent *)event;
- (IBAction)doSomething; 
- (IBAction)doSomething:(id)sender; 
- (IBAction)doSomething:(id)sender forE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值