今天618,大伙都在京东金融程序金果摇钱树收金果,所以给大家介绍如何简单制作一个,自动点击手机指定位置的脚本。该简单的案例实现效果也是基于auto.js上的,如果对auto.js不清楚的话可以看看基础篇。
不多说,先上最简单代码:
首先打开Auto.js右下角加号新建一个js文件(javascript语言)。然后在文件第一行输入click(x,y);这就是我们的点击功能。然后把其中x换成你要点的坐标的横坐标,y换成你要点的坐标的纵坐标即可。比如,我要点击坐标x500,y1200的地方,那么就输入click(500,1200);即可。
关于,如何获得你要点击的点的横坐标与纵坐标,首先打开:手机-设置-开发者选项-指针位置,这时,你手点击在屏幕上时,最上面一排,都会显示出,你点击的位置的坐标。这个坐标是已手机左上角为坐标系原点,一直延伸像右下角,大小等于你手机分辨率的一个坐标系。
仅仅点击,可能并不能达到大部分所有脚本的需求。sleep(t)这个功能能让脚本从上往下运行到这一步时,暂停一段时间,再继续运行下去。t改成需要暂停运行的毫秒数,1秒=1000毫秒 ,数字是整数,如果你写的不是整数,程序会自动四舍五入凑整。 比如暂停十分钟,我们可以先算出来,10分钟600秒,就是600 000毫秒,那么程序就是sleep(600000); 当然我们可以不需要自己算出来,直接在括号内写一个算式即可,* 代表×的意思,可以直接写sleep(10*60*1000);这样,程序运行时,会先自动把,括号内的算式算出来,再运行等待。
教学实例:我们比如想在晚上12点在某QQ群发出签到,却明天有事,必须9点前睡觉。那我们可以写个脚本,等待一段时间后,自动点下,9点距离12点有三个小时那么第一行等待写sleep(3*60*60*1000);然后写点击发送,在小编手机上,发送按钮的坐标在1000,150,所以点击命令为click(1000,150);连起来后,在晚上9点运行,切换到qq签到界面就好啦。
学会了这个方法,相信各位,只要能记录好等待时间,做出,自动玩跳舞的线之类的游戏的脚本应该没问题了吧。
说完了click点击,我们来讲下一个功能press。
我们在模拟操作的时候,可能不需要单独一下的点击,而是需要长按之类的操作,press正是一个能设置点击下去时间长短的按下功能。语法是press(x,y,t);其中前两个和click一样,设置点击坐标,第三个设置点击时常,单位是毫秒,手机内一般认定半秒,即500毫秒的点击,是长按。
举个例子,长按屏幕500,500的地方两秒:press(500,500,2000);
其实看似click是几乎一瞬间完成点击效果,其实是默认了一个点击时长100毫秒,所以如果想做更快的点击操作,可以用press设置点击时长为1毫秒,代替click功能。
再说一个功能swipe直线滑动。制作脚本时不免还是必须有滑动功能的。比如趣头条自动放文章,火牛视频翻视频之类的功能。语法是swipe(x1,x2,y1,y2,t);前两个为:设置滑动开始的点的坐标,第三四个为设置滑动终止的点的坐标,第五个为滑动总消耗的时间长短。举个例子,从屏幕100,300滑动至600,900总耗时花1秒为:swipe(100,300,600,900,1000);
写个实例,火牛视频,连续三次,每20秒,自动翻一次视频。火牛视频从下往上翻,就差不多从横坐标500的地方,纵坐标从1500滑到1000,耗时半秒差不多就可以了吧。那滑动命令就是swipe(500,1500,500,1000,500);另外等待20秒的命令大家相比都会了吧,直接说sleep(20000);然后这些要运行三遍,那就这两条信息一起复制三份即可,完成内容见下图。
以上就是今天基本要讲的内容,其中click,press,swipe是只有安卓7.0及以上才可以使用,现在大部分手机都到了吧..而且需要无障碍服务权限,不然运行会报错:无障碍服务权限未打开。然后程序直接运行结束,为了防止这种事情发生我们可以在代码开头加一行auto.waitFor();这句话的功能是,获取无障碍服务权限,如果已经有了,那就继续运行下面的代码,如果没有,就跳转到给无障碍服务权限的界面,并且等待给了权限,再继续运行下面的代码。在代码之前申请好运行的权限是一个好习惯。
另外,如果手机没到安卓7.0的朋友们,Auto.js也有方法,就是基于root权限的操作,并且兼容所有安卓版本。点击命令Tap(x,y);用法和click(x,y);完全一样,滑动命令Swipe(x1,x2,y1,y2,t);用法和swipe(x1,x2,y1,y2,t);完全一样,但是基于root权限的操作并没有长按功能,不过各位想一下,如果滑动500毫秒,开始点和结束的点一样,那不就是长按的效果嘛,所以自己可以想想,如何用Swipe代替root权限的长按。
回到京东金融小案例,我们不可能一直停在页面上等自动点击,所以就在设定的时间去启动应用,然后等启动页显示完后将页面下拉到种摇钱树处图片加载到收金果的页面然后再点击收金果,之后退出应用。
再考虑屏幕会熄屏需要亮屏解锁,我的手机有人脸指纹密码三种方式屏幕解锁,自动解锁采用密码输入方式,我的锁屏密码刚好设置的比较简单都是1,所以最终代码如下(今早忘带手机,所以直接贴代码):
threads.start(function()
{ while(true){ launchApp("京东金融"); sleep(10000);//启动页缓冲时间 swipe(1000,1700,1000,450,4000);//上滑显示出收金果的链接跳转图片 click(1000,1000); sleep(10000);//跳转链接缓冲 click(550,1260); sleep(2000); back();//退出链接 back();//返回键退出应用 sleep(500);//稍等一小会再按返回键,以防太快无法响应导致无法退出应用 back();//再次返回键退出应用 //shell("am force-stop com.jd.jrapp",true); sleep(600000);//延时,后再循环 if(device.isScreenOn()==false){//熄屏 device.wakeUpIfNeeded();//唤醒设备 device.wakeUp();//亮屏 swipe(1000,1700,1000,450,4000);//上滑显示输密屏幕解锁 for(var i=0;i<8;i++){ click(250,1350); sleep(1000);//以防按太快漏输情况 } sleep(10000); } });