Autojs基础-按键模拟(keys)

1.前言

这部分内容一部分函数是基于无障碍服务,另一部分函数是基于root环境的。root函数一般用于模拟器和虚拟机中,无障碍函数一般用于新游戏或者新系统中。我们开发游戏脚本一般也会选用支持root的环境,能够更加方便。但是,有些新游戏不允许在root环境中启动,这种情况下更推荐通过无障碍的方式完成相关功能。如果用过直板机,对于这部分内容更好理解,可以理解为通过命令去调用这些按键。如果无障碍函数和root函数都能完成的功能,我更推荐使用无障碍函数,因为无障碍函数兼容性更好并且执行速度更快。

2.无障碍函数

1.back与home

back函数相当于返回按键,用于返回,返回是否执行成功。

home函数相当于home按键,用于返回手机主页面,返回是否执行成功。

scss 复制代码
// 返回
let hasExecute = back();
console.log("返回是否执行成功:" + hasExecute);
sleep(1000);

// 返回主页面
hasExecute = home();
console.log("返回是否执行成功:" + hasExecute);

2.powerDialog

弹出电源键菜单,返回是否执行成功。

ini 复制代码
let hasExecute = powerDialog();
console.log("操作是否执行成功:" + hasExecute);

3.notifications与quickSettings

notifications函数用于拉出通知栏,返回是否执行成功。

quickSettings函数用于显示快速设置(下拉通知栏到底),返回是否执行成功。

scss 复制代码
// 通知栏
let hasExecute = notifications();
console.log("通知栏是否执行成功:" + hasExecute);
sleep(2000);

// 返回
back();
sleep(1000);

// 快速设置
hasExecute = quickSettings();
console.log("快速设置是否执行成功:" + hasExecute);

4.recents与splitScreen

recents函数用于显示最近任务,返回是否执行成功。

splitScreen函数用于分屏,返回是否执行成功。

scss 复制代码
// 最近任务
let hasExecute = recents();
console.log("最近任务是否执行成功:" + hasExecute);
sleep(2000);

// 返回
back();
sleep(1000);

// 分屏
hasExecute = splitScreen();
console.log("分屏是否执行成功:" + hasExecute);

3.root函数

1.Home与Back

back函数相当于返回按键,用于返回。

home函数相当于home按键,用于返回手机主页面。

scss 复制代码
// 返回
Back();
sleep(1000);

// 返回主页面
Home();

2.Power与Menu

Power函数相当于电源键,用于弹出电源界面。这个函数使用时需要注意,模拟器中调用会黑屏。

Menu函数相当于菜单键,用于弹出菜单界面。这个函数在模拟器使用时,没有反应。

scss 复制代码
// 弹出电源界面
Power();
sleep(1000);

// 返回
Back();
sleep(1000);

// 弹出菜单界面
Menu();

3.VolumeUp与VolumeDown

VolumeUp函数相当于加音量键,用于增加音量。

VolumeDown函数相当于减音量键,用于降低音量。

scss 复制代码
// 加音量
VolumeUp();
sleep(1000)

// 减音量
VolumeDown();

4.Camera

相当于相机键,用于启动相机。由于我的环境是模拟器,使用这个函数没有反应。

5.Up、Down、Left与Right

Up、Down、Left和Right函数分别相当于上、下、左和右键,用于控制方向。但是随着直板机(按键手机)的淘汰,游戏移动都是通过触摸完成,很多游戏都没有兼容按键操作。在游戏中调用这四个函数,大多数情况下是没有反应的。但是,一些非常老的游戏会兼容按键操作,这四个函数又非常好用。

如果是在模拟器环境,按键盘的上下左右键和这四个函数功能类似,如果键盘方向键能够控制方向,一般情况下,这四个函数也能有效。

scss 复制代码
Up();
sleep(1000);

Down();
sleep(1000);

Left();
sleep(1000);

Right();

6.OK

相当于确定键,用于确定操作。由于直板机(按键手机)的淘汰,现在很多对话框根本没有兼容按键操作。很多时候对话框上有确定按钮,但是调用这个函数是无效的。

7.Text

在输入框输入内容,需要传递内容一个参数,参数类型为字符串。这个函数和OK函数境地差不多,能不能用还得看输入框的兼容性。

8.KeyCode

通过键值来调用功能,需要传递键值一个参数,参数类型为字符串,具体键值对应的按键功能可以参考官方文档的KeyCode对照表。上面介绍的功能,类似于将常用键值和按键功能对应关系进行了二次封装。以返回主页面为例,下面两种调用方式类似。

scss 复制代码
Home();

// 相当于
KeyCode("3");

4.总结

特别注意,只有通过个人主页博客或者个人介绍中方式,才能获取源码

相关推荐
进击的尘埃1 小时前
Vue3 中 emit 能 await 吗?事件机制里的异步陷阱
javascript
青青家的小灰灰2 小时前
告别 Prop Drilling:Context API 的陷阱、Reducer 模式与原子化状态库原理
前端·javascript·react.js
进击的尘埃2 小时前
CSS 变量 + 主题切换:从 CSS-in-JS 回归原生方案的实践之路
javascript
wuhen_n2 小时前
Suspense:异步组件加载机制
前端·javascript·vue.js
wuhen_n2 小时前
Teleport:渲染到任意DOM节点
前端·javascript·vue.js
进击的尘埃2 小时前
组合式函数的设计模式:如何写出真正可复用的 Vue3 Composables
javascript
我叫黑大帅2 小时前
前端总说的防抖与节流到底是什么?
前端·javascript·面试
掘金安东尼2 小时前
从平面到空间:用 React Three Fiber 构建 3D 产品网格
前端·javascript·面试
swipe2 小时前
#用这 9 个浏览器 API,我把页面从“卡成 PPT”救回到 90+(每个都有能直接抄的例子)
前端·javascript·面试