写在前面:
本文章记录自己在开发过程中,遇到的基础问题,也同样便于在以后的开发中获得便利。
如果你是初学Auto.js开发,建议可以读这篇文章Auto.js入门【超基础】,该文章是我入门时拜读的作品,整体感觉很好,基本内容都有所讲到,完全可以适合新手做出一些简单的脚本自用。
一、开发文档
在开发文档中该方法也提到,有些系统是没有保持始终允许的选项的,题主也是遇到了这个问题,因为写的脚本时定时运行的,不可能自己再手动授权,所以自己写了一个能够自动授权方法,还有很多不足的地方,希望大家可以斧正。
二、进阶方法
1、定义方法(仅个人推荐)
我一般会选择重新开一个js文件,单独存放我自己定义的一些便捷函数,这样开发时,我只需要复制该文件到文件夹,就可以调用使用我定义的所有函数。
2、代码
function getScreenCapture(){
let Thread = threads.start(function(){
if(auto.service != null){ //如果已经获得无障碍权限
//由于系统间同意授权的文本不同,采用正则表达式
let Allow = textMatches(/(允许|立即开始|统一)/).findOne(10*1000);
if(Allow){
Allow.click();
}
}
});
if(!requestScreenCapture()){
log("请求截图权限失败");
return false;
}else{
Thread.interrupt()
log("已获得截图权限");
return true;
}
}
这里我主要是采用了多线程和正则表达式来写这一段代码,不懂得小伙伴可以看开发文档:Auto.js官方API文档传送门,当然开发文档中有些地方写的比较含糊,如果是初接触这两个功能的话可能看不懂,可以自己搜索一些教程了解一下,也可以私信我,给你推荐。
3、调用方法
var mydefine = require("MydefineFun.js");
在main.js方法中可以采用接收该导出的方式,然后用mydefine就可以就可以调用方法,其中MydefineFun.js是写了方法的文件名。
四、最后
1、有什么不当之处,欢迎讨论。
2、有什么问题可以私信我,也可以关注我,后面会找时间更新其他的进阶方法。