「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」
课程背景
- 最近快到年底了 手底下的事情不少 但啥都不相干
- 掘金粑粑又开始更文奖励了
有点小欣喜 - 但上次纯手工写了50篇技术文档 感觉身体被掏空了 没啥能写的了
- 思来想去还是分享一下之前Get到的一个小技能 Auto.js吧
正文开始
上一章节中我们完成了红包的脚本,也了解了autojs的一些基本逻辑。
autojs无非就是通过一些封装好了的方法,模拟了我们对于手机的一些操作而已。进行操作的步骤无非也是三步
- 定位页面中的元素 比如 text() id() 方法,这是最常用的
- 选择要操作的元素 比如 findOne()方法。这个是最最常用的选择操作
- 执行操作 click() longClick() 点击是我们对手机最多的操作了。只是有的允许点击的控件可以直接执行click()方法,不允许点击的控件则是需要我们找到控件的中心点坐标。去点击中心坐标以完成我们对屏幕的点击操作
- 最后一步就是开启循环,无限的去执行我们已经写好的操作逻辑。
这跟Excel中的宏是非常相似的,都是去录制一段操作。然后后续就可以无限执行这段操作
完整的代码
/**
* [这是学习autojs时候编写的抢QQ红包的练习脚本]
* Author Liiy.
* Date 2022/01/27.
* Time 21:39.
*/
home()
text("QQ").findOne(1000).click()
liiy_sleep(2) //等待两秒打开app
//监听消息页面
while(true){
//寻找未读消息
let un_read = id("com.tencent.mobileqq:id/unreadmsg").findOne(1000)
if(un_read){
//根据坐标点击未读消息按钮
click(un_read.bounds().centerX()-200,un_read.bounds().centerY())
liiy_sleep(1)
//寻找红包
while(true){
hongbao = id("com.tencent.mobileqq:id/h69").findOne(1000)
if(hongbao){
click(hongbao.bounds().centerX(),hongbao.bounds().centerY())
liiy_sleep(1)
//点击关闭按钮
desc("关闭").findOne(1000).click()
liiy_sleep(1)
//删除已经领取了的红包
longClick(hongbao.bounds().centerX(),hongbao.bounds().centerY())
text("删除").findOne(1000).click()
let del_btn = text("删除").findOne(1000)
if(del_btn){
click(del_btn.bounds().centerX(),del_btn.bounds().centerY())
liiy_sleep(0.1)
}
}else{
toast("没有找到红包")
liiy_sleep(1)
break;
}
}
//返回到主界面
back()
liiy_sleep(1)
}
toast("休息一下进行下一轮的寻找")
liiy_sleep(5)
}
//等待一下
function liiy_sleep(second){
sleep(second * 1000)
}
你不可以用脚本做的事情
这里着重说明一下你不可以用脚本做的事 或者是说你要小心的地方
1 不可以用脚本去抖音极速版刷视频得红包。因为抖音加了手势的检测逻辑。如果你一直用同一个手势,那会封你的抖音号。(别问我是怎么知道的,谁被封谁知道)
2 不可以在掘金上刷赞。因为掘金运营有个叫没露封的管理员时刻在监视这你的账号,如果点赞多了,你的掘金号基本上会被封。(别问我是怎么知道的,谁被封谁知道)
3 (...虚位以待) 更多的目前没发现