程序员过年必备 -- Auto.js微信自动抢红包

打开微信就不用管了:

- 自动打开未读消息html

- 自动滑动屏幕检测红包android

- 自动跳过无效红包git

 

基于Auto JS,apk版本4.01:

- 大多数动做均基于控件github

- 极个别点击基于动态抓取的坐标微信

- 这就意味着不限机型或屏幕尺寸函数

 

使用说明:

- 安装auto.js apkspa

- 导入js脚本调试

- 在auto js设置中开启悬浮窗,由于懒得写控制逻辑了,直接用悬浮窗控制程序开始或结束code

- 打开微信视频

 

逻辑思路和关联到的控件信息:

i. 检查是否有红包?循环上滑3次屏幕
ii. 点击红包消息
LinearLayout(clickable=true && depth=13 && id=atb)
iii. 检测红包是否可领?有无[开]
iv. 开红包【开】
Button(desc='开' && id=dan && depth=9)


v. 取得金额
TextView(depth=13 && id=d62 && text=【金额】)
vi. 返回聊天界面
LinearLayout(depth=7 && id=m0 && clickable=true)
vii. 返回微信首页
LinearLayout(depth=9 && id=lr && clickable=true)

 

主要代码逻辑 - 检测新红包/无效红包

Hints:

1. 若是一个控件自己没法经过click()点击,那么咱们能够利用bounds()函数获取其坐标,再利用坐标点击。例如:
var b = desc("打开侧拉菜单").findOne().bounds();
click(b.centerX(), b.centerY());  //若是使用root权限,则用 Tap(b.centerX(), b.centerY());


2. 当心使用find(),findOne()等,注意仔细看原文档,不然会莫名其妙找不到控件或被阻塞

//please avoid to use findOne() as it will jam until get one UIObject
// we could use findOne(500) or findOnce() to instead if need

 

//搜索新红包并点开领取
function searchNewRedpacket(){ var rp_msg_list = className("android.widget.TextView").id('auk').find(); log("调试信息3" + rp_msg_list); if(rp_msg_list.length != 0){ log("检测到的红包个数: " + rp_msg_list.length); for(var i = 0; i < rp_msg_list.length; i++){ var rp_auk = rp_msg_list[i]; var rp_auk_parent = rp_auk.parent(); if(rp_auk_parent.childCount() == 1){ log("### 发现新红包"); var rpB = rp_auk_parent.bounds(); click(rpB.left, rpB.top, rpB.right, rpB.bottom); log("成功打开红包消息"); openNewRedPacket(); sleep(1000); }else if(i == (rp_msg_list.length - 1)){ log("当前页面已检测完"); break; }else{ log("无效红包, 跳过"); } } }else if(rp_msg_list.empty()){ log("未检测到红包消息" + rp_msg_list.length); }else{ return; } }

 

主要代码逻辑 -- 开红包

//领取点开的红包
function openNewRedPacket(){ var draw = desc("开").findOne(500); log("调试信息2"); if(draw != null){ log("#### 点开新红包"); draw.click(); log("#### Gain a LUCKY succesfully!!!"); sleep(1000); //领完返回聊天主页
 back(); }else{ log("过时之类无效红包"); } back(); log("返回成功"); }

 

 

今天忙的有点晕,就写这些了,须要完整代码的留言,改天抽空上传操做视频和源码到github。

 

PS: 写这个先后大概花了4晚上(2小时/晚),原由是老婆说他们公司老板常常发大红包她老是抢不到。。。

今晚估计能够让老婆加鸡腿了^_^

原文出处:https://www.cnblogs.com/chilliegg/p/12177535.html

相关文章
相关标签/搜索