RawRuleProps
全局规则和应用规则的基础通用属性
继承
继承于
属性
key?
可选Integer
当前规则在列表中的唯一标识
key 没有顺序大小之分, 可以是任意数字
设置后不可更改, 否则造成点击记录错乱
name?
可选string
规则名称
preKeys?
要求当前列表里某个 key 刚刚执行
比如: 点击关闭按钮-选择关闭原因-确认关闭, key 分别是 1,2,3, preKeys 分别是 [],[1],[2]
那么 选择关闭原因 必须要求 点击关闭按钮 刚刚执行过才能执行, 确认关闭 也要求 选择关闭原因 刚刚执行过才执行
否则后面的规则不会触发, 也就是要求规则按顺序执行, 这是为了防止规则匹配范围太过广泛而误触
action?
可选"click"|"clickNode"|"clickCenter"|"back"|"longClick"|"longClickNode"|"longClickCenter"|"swipe"|"none"
规则匹配后的操作行为
在 position 存在的情况下, action 的默认值为 clickCenter
在 swipeArg 存在的情况下, action 的默认值为 swipe
示例
`click`
// 为默认值, 如果目标节点是 clickable 的, 则使用 `clickNode`, 反之使用 `clickCenter`
// 并且当 `clickNode` 事件没有被应用接收时, 则使用 `clickCenter``clickNode`
// 向系统发起一个点击无障碍节点事件. 即使节点在屏幕外部/或者被其它节点遮挡,也依然能够正确触发点击目标节点
// 但是如果目标节点不是 clickable 的, 目标应用通常不响应这个点击事件, 也就是点击无效果
// 在极少数情况下, 即使节点是 clickable 的,应用显示接收但是不响应节点点击事件, 此时需要手动设置 `clickCenter``clickCenter`
// 计算出此控件的中心的坐标并且如果这个坐标在屏幕内部,那么就向系统发起一个点击屏幕坐标事件
// 如果这个坐标不在屏幕内部, 当作未匹配
// 另外如果目标节点的位置被其它节点遮挡覆盖, 则会点击触发最上层的节点(可能不是目标节点)`back`
// 向系统发起一个返回事件, 相当于按下返回键`longClick`
// 如果目标节点是 longClickable 的, 则使用 `longClickNode`, 反之使用 `longClickCenter`
// 并且当 `longClickNode` 事件没有被应用接收时, 则使用 `longClickCenter``longClickNode`
// 向系统发起一个长按无障碍节点事件,与 clickNode 类似`longClickCenter`
// 与 clickCenter 类似, 长按时间为 400 毫秒`swipe`
// 向系统发起一个滑动事件, 使用 swipeArg 定义滑动参数`none`
// 什么都不做, 仅作为匹配标记使用position?
可选Position
在使用 clickCenter/longClickCenter 时的自定义点击位置
默认坐标为节点中心
如果计算出的坐标不在屏幕内部, 当作未匹配
在 position 存在的情况下, action 的默认值为 clickCenter
swipeArg?
可选SwipeArg
在使用 swipe 时的滑动参数
在 swipeArg 存在的情况下, action 的默认值为 swipe
matches?
可选IArray<string>
一个或者多个合法的 GKD 选择器, 如果所有选择器都能匹配上节点, 那么点击最后一个选择器的目标节点
点击优先级大于 anyMatches
anyMatches?
可选IArray<string>
一个或者多个合法的 GKD 选择器, 如果存在一个选择器能匹配上节点, 那么点击这个节点
如果 anyMatches 的所有选择器都无法匹配, 则停止匹配此规则
与 matches 一起使用时, 仍然点击 matches 的最后一项
excludeMatches?
可选IArray<string>
一个或者多个合法的 GKD 选择器, 如果存在一个选择器匹配上节点, 则停止匹配此规则
excludeAllMatches?
可选IArray<string>
一个或者多个合法的 GKD 选择器, 如果所有选择器匹配上节点, 则停止匹配此规则