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.总结

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

相关推荐
竹林8181 小时前
在Web3前端用Node.js子进程批量校验钱包,我踩了这些性能与安全的坑
javascript·node.js
Kel2 小时前
深入剖析 openai-node 源码:一个工业级 TypeScript SDK 的架构之美
javascript·人工智能·架构
SuperEugene3 小时前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
Luna-player3 小时前
Vue 3 + Vue Router 的路由配置,简单示例
前端·javascript·vue.js
敲代码的约德尔人3 小时前
JavaScript 设计模式完全指南
javascript·设计模式
angerdream4 小时前
最新版vue3+TypeScript开发入门到实战教程之Vue3详解props
javascript·vue.js
~欲买桂花同载酒~4 小时前
项目优化-vite打包优化
前端·javascript·vue.js
kyriewen5 小时前
JavaScript 继承的七种姿势:从“原型链”到“class”的进化史
前端·javascript·ecmascript 6
wangfpp5 小时前
性能优化,请先停手:为什么我劝你别上来就搞优化?
前端·javascript·面试