[JavaScript] 纯文本查看 复制代码
"auto" //系统配置初始化auto.waitFor();sleep(3000);
wakeup()
unlock()
device.setBrightnessMode(0);
device.setBrightness(1);
device.setMusicVolume(0);
clearrecents()
//floatyPermission();
let state = false; //是否执行成功状态
const verCode = app.versionCode;
const verName = app.versionName;
const kx = device.width / 1080; //横坐标比例系数
const ky = device.height / 2340; //纵比例系数
let backX = 83 * kx; //左上角返回按钮的横坐标
let backY = 185 * ky; //左上角返回按钮的纵坐标
let gotY = false; //是否已获取新的backY
let step=1500;
sleep(1000);
console.show();
sleep(500);
console.setSize(800, 500);
sleep(500);
console.setPosition(0, 1400);
console.hide();
DJC()
home();
sleep(1000);
clearrecents()
sleep(1000);
lock()
engines.stopAllAndToast();
//道聚城签到
function DJC()
{
launch("com.tencent.djcity");
waitForPackage("com.tencent.djcity");
text("首页").untilFind();
log("道聚城启动完必");
sleep(5000);
desc("签到成功").findOne(5000);
var signinok=className("android.view.View").desc("好的").findOne(2000)
if(signinok!=null)
{
click(signinok.bounds().centerX(), signinok.bounds().centerY());
}
sleep(2000);
click(546,1320);
sleep(2000);
back();
sleep(2000);
var libao=className("android.view.View").desc("礼包中心").findOne(1000);
if(libao!=null)
{
click(libao.bounds().centerX(), libao.bounds().centerY());
log("点击礼包中心");
}
sleep(5000);
var shouyou=className("android.view.View").desc("手游").findOne(3000);
if(shouyou!=null)
{
click(shouyou.bounds().centerX(), shouyou.bounds().centerY());
log("点击手游");
}
sleep(3000);
click(540,932)
sleep(2000);
click(906,1046);
sleep(2000);
click(220,1451);
sleep(1000);
click(713,1332);
sleep(2000);
djbackhome()
sleep(1000);
click(116,189)
sleep(2000);
sml_move(540, step, 540, 900, 200);
sleep(2000);
click(526,1568);
sleep(2000);
djautorw()
djgetjl()
sleep(2000);
djopenbox()
sleep(1000);
}
function djgetjl()
{
let i = 0;
while(i<6)
{
var LJL=className("android.view.View").desc("领取奖励").findOne(1000);
if(LJL!=null)
{
click(LJL.bounds().centerX(), LJL.bounds().centerY());
sleep(2000);
click(538,1521);
sleep(2000);
}
else
{
log("已无奖励退出");
break;
}
}
}
//自动完成道聚城任务
function djautorw()
{
for(let i = 1; i< 5; i++)
{
var gojoin=className("android.view.View").desc("去参与").findOne(2000);
if(gojoin!=null)
{
click(gojoin.bounds().centerX(), gojoin.bounds().centerY());
sleep(5000);
back();
sleep(1000);
}
else
{
log("参与任务已结束");
break;
}
}
sleep(1000);
var gotolook=className("android.view.View").desc("去浏览").findOne(2000);
if (gotolook!=null)
{
click(gotolook.bounds().centerX(), gotolook.bounds().centerY());
sleep(2000);
click(516,900)
sleep(6000);
back();
sleep(2000);
click(554,1804)
sleep(6000);
back();
sleep(2000);
scrollForward()
sleep(2000);
click(516,800)
sleep(6000);
back();
sleep(2000);
click(554,1645)
sleep(6000);
back();
sleep(500);
back();
sleep(2000);
}
}
//打开宝箱
function djopenbox()
{
var openboxed=className("android.view.View").desc("打开宝箱").findOne(2000);
if (openboxed!=null)
{
click(829,580)
sleep(2000);
click(538,1521);
sleep(2000);
click(829,580)
sleep(2000);
click(538,1521);
sleep(500);
}
}
//道聚城返回主页面
function djbackhome()
{
log("检测是否在主界面");
for(let i = 1; i< 11; i++)
{
var homepage=text("首页").findOne(2000);
if(homepage!=null)
{
log("已在主界面");
break;
}
else if(i==10)
{
log("返回主界面失败退出");
exit();
}
else
{
back();
log("正在返回主界面中...");
sleep(1000);
}
}
}
//仿真曲线滑动
function bezier_curves(cp, t) {
cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;
cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = {
"x": 0,
"y": 0
};
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
return result;
};
//仿真随机带曲线滑动
//qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
function sml_move(qx, qy, zx, zy, time) {
var xxy = [time];
var point = [];
var dx0 = {
"x": qx,
"y": qy
};
var dx1 = {
"x": random(qx - 100, qx + 100),
"y": random(qy , qy + 50)
};
var dx2 = {
"x": random(zx - 100, zx + 100),
"y": random(zy , zy + 50),
};
var dx3 = {
"x": zx,
"y": zy
};
for (var i = 0; i < 4; i++) {
eval("point.push(dx" + i + ")");
};
//log(point[3].x)
for (let i = 0; i < 1; i += 0.08) {
xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]
xxy.push(xxyy);
}
//log(xxy);
gesture.apply(null, xxy);
};
//清理后台
function clearrecents()
{
recents()
sleep(1000);
var clearbox=id("clearbox").findOne(1000);
if (clearbox!=null)
{
click(clearbox.bounds().centerX(), clearbox.bounds().centerY());
sleep(1000);
home();
}
else
{
home();
}
}
function lock()
{
var lockscreen=className("android.widget.TextView").desc("一键锁屏,应用在托盘上").findOne(1000);
if (lockscreen!=null)
{
click(lockscreen.bounds().centerX(), lockscreen.bounds().centerY());
sleep(1000);
}
}
//关闭屏幕
function closescreen()
{
var w = floaty.rawWindow(
<frame gravity="center" bg="#000000"/>
);
w.setSize(device.width,device.height);
w.setPosition(0, -60);
w.setTouchable(false);
//保持脚本运行
setInterval(()=>{}, 1000);
}
//唤醒屏幕
function wakeup()
{
for(let i = 1;i<11;i++)
{
if (!device.isScreenOn())
{
device.wakeUp() // 唤醒设备
log("亮屏"+i+"次");
sleep(1000);
}
else if(i==10)
{
log("亮屏失败退出");
exit();
}
else
{
log("已亮屏");
device.keepScreenOn(1200*1000); // 保持亮屏
break;
}
}
}
//判断是否有屏幕锁
function isDeviceLocked()
{
importClass(android.app.KeyguardManager);
importClass(android.content.Context);
var km = context.getSystemService(Context.KEYGUARD_SERVICE);
return km.isKeyguardLocked();
}
// 输入密码
function password_input()
{
var password = "******"
for(var i = 0; i < password.length; i++)
{
var p = text(password[i].toString()).findOne(1000)
longClick(p.centerX(), p.centerY());
sleep(100);
}
log("解锁成功");
}
//解锁屏幕
function unlock()
{
for(let l=1;l<6;l++)
{
if(isDeviceLocked())
{
sml_move(540,1800,600,1000,500);
log("滑动屏幕"+l+"次");
var mima=text("输入密码").findOne(2000);
if(mima!=null)
{
log("输入密码");
password_input();
break;
}
}
else if(l==5)
{
log("解锁失败退出");
exit();
}
else
{
log("无需解锁");
break;
}
}
}