基于auto.js脚本2

  • 软件准备
  • 技术理论
  • 安装教程
  • 推荐工作模式
  • 注意事项
  • 附录代码

    软件准备

auto.js或者 auto.js pro版。auto.js目前官方已经停止更新,pro版本需要收费。大家可以试试GitHub上的民间团队维护的autoX.js.  也欢迎尝试收费的pro版本,毕竟会比较稳定。weixin打卡的xiao程序以“嘉办事”为例。

     技术理论

通过Javascript脚本,实现模拟点击。对于熄屏解锁,不同手机型号屏幕像素不一样,因此无法做到通用适配。大家可以自行编写代码实现。

     安装教程

1.只需要安装完auto.js软件,打开该软件。会提示你打卡无障碍权限,请授予其无障碍权限以及悬浮窗权限(此步骤不多做解释)。

2.新建脚本,把代码复制进去。

3.保存,设置定时任务(每天固定打卡)

具体如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARG9uZ0hpfg==,size_20,color_FFFFFF,t_70,g_se,x_16

 按照上面步骤,保存后,在主界面上点击三角形就会立马运行。点击旁边的三个点可以设置定时任务,定时设置为每天十一点,这个时间段大部分人手机处于亮屏状态。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARG9uZ0hpfg==,size_20,color_FFFFFF,t_70,g_se,x_16

 推荐工作模式

不建议用上面的定时方式,因为不同机型后台管理机制有所差异,会结束auto.js的进程。建议使用创建快捷方式的模式。如上面最后一张图的 “定时任务”下面就是创建桌面快捷方式。如果创建失败,请在系统设置里面给予auto.js创建快捷方式权限。创建快捷方式后,只需要点击桌面图标,就能够自动运行。

注意事项

1.该脚本模拟的是weixin首页下拉点击小程序进入。因此首页下拉小程序必须要有“嘉办事”否则执行失败。

2.为保证正常运行请授予auto.js软件自启、后台常驻、省电忽略、无障碍等权限。

3.若没开启无障碍,运行脚本时会自动跳转无障碍选项。

4.打卡成功后,会自动截图。截图会保存在手机存储的根目录。文件名是“自动打卡(查看日期)”,可以通过截图的日期详细信息判断打卡是否成功。若无截图,说明打卡出现问题。第二次打卡截图会覆盖第一次打卡的图片,无论你打卡多少次,都只会仅有一张截图。查看截图的日期,就可以知道有没有打成功。

5.请勿将运行本脚本与打卡成功进行等价,最后打卡成功与否一定要看有没有截图!!没有截图则需要以及重新手动打卡一遍。

6.本脚本只是方便用户,成功率因机型而异。切勿成为与生活委员、班长、学委、老师等争论依据。

7.如果给予了无障碍权限后运行脚本还是跳转到无障碍的设置界面,此时可以尝试手动结束auto.js进程,然后重新打开 auto.js,在里面重新启用无障碍模式。如果不行,多试几遍即可。(部分机型可能会出现该问题.)

附录代码


auto.waitFor();
if (!device.isScreenOn()) {
  device.wakeUp();
  sleep(2000);
  swipe((device.width) * 3 / 4, (device.height) * 3 / 4, (device.width) * 2 / 4, (device.height) * 2 / 4, 1000);
  var i;
  for (i = 0; i < 4; i++) {
      sleep(500);
      click(541, 2139.0);
  }
  console.log("自动解锁成功!");
  sleep(2000);
}
//上面是息屏自动解锁,可根据实际情况自行调整

console.show();
console.setSize(447, 502);
console.setPosition(300, 1350);
console.log("开始 ^_^");
var appName = "微信";
launchApp(appName);

  text("微信").waitFor();//等待加载发现页面.text('微信')
  console.log("进入首页");
  var widget = className("TextView").depth(13).findOne();
  click(widget.bounds().centerX(),widget.bounds().centerY());
  console.log("操作成功,正在进入下一步(1/5)");
  sleep(1000);
  console.log("下滑小程序界面....");

while(text('最近').exists()==false){
  
swipe((device.width)/4,(device.height)/4,(device.width)*3/4,(device.height)*3/4,1000);};//判断滑到最顶端

swipe((device.width)/4,(device.height)/4,(device.width)*3/4,(device.height)*3/4,1000);//继续滑动

  console.log("已滑动进入首页小程序");
  text("最近").waitFor();
  var widget1 = text('嘉办事').findOne();
  click(widget1.bounds().centerX(),widget1.bounds().centerY());
  console.log("操作成功,正在进入下一步(2/5)");

  console.log("进入打卡小程序...");
  sleep(2000);
  text("日常健康").waitFor();
  var target2= text('日常健康').findOne();
  click(target2.bounds().centerX(),target2.bounds().centerY());
  console.log("操作成功,请确保网络畅通(3/5)");

  sleep(2000);
  text("直接提交").waitFor();
  var target3= text('直接提交').findOne();
  click(target3.bounds().centerX(),target3.bounds().centerY());
  console.log("提交成功,结束(4/5)");

  sleep(3000);
  threads.start(function (){undefined
  var beginBtn;
  if (beginBtn = classNameContains('Button').textContains('允许').findOne(2000)) {undefined
beginBtn.click();
}});
// 此处findOne(2000)是为了限制查找时间,如果留空,找不到就会一直找。
console.log("开始截图");
if(!requestScreenCapture()){undefined
toast("请求截图失败");
exit();
};
sleep(3000);

captureScreen("/storage/emulated/0/截图保存(查看日期)" + ".jpg");
console.log("截图成功!(5/5)");

sleep(3000);
var target4= id('com.tencent.mm:id/fi').findOne();
click(target4.bounds().centerX(),target4.bounds().centerY());
console.log("正在进行结束操作,请稍等..");

var target5= className("android.widget.ImageButton").indexInParent(2).findOne();
 click(target5.bounds().centerX(),target5.bounds().centerY());
//关闭按钮
console.log("再见 ~^_^~");
 sleep(3000);
 console.hide();//隐藏控制台;
exit();

文章最后

本文价讲述了基于auto.js的实际操作,可以看我上一篇文章。

大家可以更具需求自行更改,现在打算停止更新了。

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值