【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上面须要作修改,才能运行。html

Auto.js简介

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开发脚本,有什么特色?

吸引我使用Auto.js Pro的缘由有不少。最主要的几个缘由是:svg

  • 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引流脚本开发教程优化