写在前面
千呼万唤始出来,京东终于加入了今年双十二的大战了,不得不说,京东今年确实有点迟了,不过作为京东的忠实用户,笔者还是在第一时间熬夜写出了脚本文件供大家学习使用
关注微信公众号“口袋阅打卡小助手”,后台回复"京东双十二",获取脚本/APK文件(脚本文件将在文末开源,大家安心哦)
使用教程
打开桌面的京十二图标
如果是第一次运行会申请权限,请允许
然后页面也跳转到开启无障碍的页面,手动开启无障碍模式,具体操作如下图所示
开启后重新运行京十二,系统会提示需要悬浮窗权限
这里需要大家手动开启悬浮窗权限哦,由于不同手机开启方式不太一样,大家可以自行百度,笔者使用的是小米8 MIUI12系统,开启界面如下
开启即可
到这里,需要设置的地方就都结束了,可以直接运行京十二APP了
不过运行过程中会申请京东应用的打开,大家小手记得点下允许
下面是运行GIF,不过笔者这里调试代码的时候都运行结束了,大家看个现象吧
脚本代码
auto.waitFor();
var height = device.height;
var width = device.width;
toast("开启2020京东双十二")
setScreenMetrics(width, height);
// toastLog(isActPage())
start()
function gotoAct() {
log('准备启动京东APP')
launch('com.jingdong.app.mall')
log('京东APP打开成功')
MySleep(4, 5);
log('准备进入京东双十二活动页面,如果页面有其他弹窗,请手动关闭下')
let actWid = descContains('浮层活动').clickable(true).findOne(500);
click(actWid.bounds().centerX(), actWid.bounds().centerY());
MySleep(4, 5);
if (!isActPage()) {
actWid = descContains('浮层活动').clickable(true).findOne(500);
click(actWid.bounds().centerX(), actWid.bounds().centerY());
MySleep(4, 5);
}
}
function gotoActFromIndex() {
let actWid = descContains('浮层活动').clickable(true).findOne(500);
click(actWid.bounds().centerX(), actWid.bounds().centerY());
MySleep(4, 5);
}
function isIndexPage() {
let actWid = descContains('浮层活动').clickable(true).findOne(500);
if (actWid) {
return true;
} else {
return false;
}
}
function start() {
console.show();
log('运行脚本请先将京东商城APP从后台杀掉,保证运行过程中出现错误较少')
MySleep(4, 6);
gotoAct();
while (!isActPage()) {
log('程序未正确进入活动页面,请手动进入')
MySleep(2, 3);
}
if (isActPage()) {
log('进入活动页面成功')
}
finishTask();
lingHB();
alert("任务已完成", "所有任务貌似都做完啦!\n若仍有任务请重新运行噢!");
}
function lingHB() {
if (isActPage()) {
let kaihongbao = text('开红包').depth(14).clickable(true).findOne(1000);
while (kaihongbao) {
kaihongbao.click();
MySleep(2, 3);
let shouxia = text('开心收下').findOne(1000);
click(shouxia.bounds().centerX(), shouxia.bounds().centerY())
MySleep(2, 3);
kaihongbao = text('开红包').depth(14).clickable(true).findOne(1000);
}
}
}
function finishTask() {
let taskBS = ['去完成', '去浏览']
for (let i = 0; i < taskBS.length; i++) {
lingHB();
let task = taskBS[i];
let taskWid = text(task).depth(14).clickable(true).findOne(1000);
while (taskWid) {
let textWid = className('android.view.View').indexInParent(taskWid.indexInParent() - 2).depth(14).findOne(500);
taskWid.click();
log('去完成:' + textWid.text())
MySleep(2, 3)
let count = 0;
while (count++ < 5) {
MySwipe();
MySleep(0.5, 2);
}
back();
MySleep(2, 3);
if (isIndexPage()) {
gotoActFromIndex();
}
while (!isActPage()) {
back();
MySleep(2, 3);
}
taskWid = text(task).depth(14).clickable(true).findOne(1000);
MySleep(2, 3);
}
}
}
function isActPage() {
let actPage = textContains('db0b3143293bbbb7').depth(14).findOne(500);
if (actPage) {
return true;
} else {
return false;
}
}
function random(min, max) {
return Math.round(Math.random() * (max - min)) + min;
}
function MySwipe() {
var sX = random(100, width - 100);
var sY = random(height / 2 + 100, height - 100);
var eY = random(100, height / 2 - 100);
swipe(sX, sY, sX, eY, random(100, 120));
}
function MySleep(Min, Max) {
sleep(random(Min * 1000, Max * 1000));
}
来源:oschina
链接:https://my.oschina.net/u/4345184/blog/4783362