"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上面须要作修改,才能运行。html
Auto.js是利用安卓系统的“辅助功能”实现相似于按键精灵同样,能够经过代码模拟一系列界面动做的辅助工做。
与“按键精灵”不一样的是,它的模拟动做并非简单的使用在界面定坐标点来实现,而是相似与win通常,找窗口句柄来实现的。android
Auto.js使用JavaScript做为脚本语言,目前使用Rhino 1.7.7.2做为脚本引擎,支持ES5与部分ES6特性。web
Auto.js Pro开发文档优化版
文档尚在完善中,可能有文档描述和代码实际行为有出入的状况。
模板、样式、generator来自Node.js。app
吸引我使用Auto.js Pro的缘由有不少。最主要的几个缘由是:svg