【autojs】Auto.js Pro软件开发UI脚本启用无障碍的最佳解决方案脚本源代码
作者:互联网
代码
"ui";
//此代码由飞云脚本圈整理提供(www.feiyunjs.com)
// 误区一:使用线程开启无障碍
// 浪费CPU和内存资源,不必要的线程
// threads.start(function() {
// auto.waitFor();
// });
// 误区二:直接使用auto()
// 对用户不友好
// auto();
// 正确示范:
// 通过一个开关表示无障碍权限是否开启
// 如果用户没有开启直接运行则提示
ui.layout(
<vertical>
<appbar>
<toolbar title="UI脚本使用无障碍服务的最佳实践"/>
</appbar>
<Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="15sp"/>
<frame height="200" gravity="center">
<text text="相关配置..." gravity="center"/>
</frame>
<button id="start" text="开始运行"/>
</vertical>
);
ui.autoService.on("check", function(checked) {
// 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
if(checked && auto.service == null) {
app.startActivity({
action: "android.settings.ACCESSIBILITY_SETTINGS"
});
}
if(!checked && auto.service != null){
auto.service.disableSelf();
}
});
// 当用户回到本界面时,resume事件会被触发
ui.emitter.on("resume", function() {
// 此时根据无障碍服务的开启情况,同步开关的状态
ui.autoService.checked = auto.service != null;
});
ui.start.on("click", function(){
//程序开始运行之前判断无障碍服务
if(auto.service == null) {
toast("请先开启无障碍服务!");
return;
}
main();
});
function main() {
// 这里写脚本的主逻辑
threads.start(function () {
log("开始运行");
sleep(2000);
log("运行结束");
});
}
说明
本文提供的代码仅供参考。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。
Auto.js简介
Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。
Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。
开发文档
Auto.js Pro开发文档优化版
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。
模板、样式、generator来自Node.js。
为什么要使用Auto.js Pro开发脚本,有什么特点?
吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:
- Auto.js Pro能开发免ROOT的安卓脚本
- Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
- Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
- Auto.js Pro使用的js的语法比较优雅,代码可读性强
- Auto.js Pro的命令库非常的丰富,接口比较多
- Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告
相关教程
Auto.js Pro安卓全分辨率免ROOT引流脚本开发教程
标签:脚本,function,Auto,Pro,js,auto,无障碍,源代码 来源: https://blog.csdn.net/feiyunjs/article/details/93852491