AutoJS 模拟贝塞尔曲线视频滑动 密级: 【C-3】 | 时间:2024-02-21 | 目录:编程开发 | 编辑本文 文章距今已发表三个月,请自行判断文中技术方法、代码的有效性:) ## 代码 ```javascript var packageName = ""; // 包名 launch(packageName); waitForPackage(packageName); sleep(5000) print("网络延时等待结束,开始查找") var title = id("title").findOne(1000); if(title == null){ print("未找到,清除数据回主界面,进程结束") killApp(""); exit(); } print("出现点击框") //等待三秒 sleep(random(1000, 3000)) //点击确认 if(id("dvy").exists()){ id("dvy").findOne(1000).click() } if(id("g1u").exists()){ id("g1u").findOne(1000).click() } var tcjc = threads.start(function () { //在子线程执行的定时器 setInterval(function () { print("开始子线程检测弹窗") var szyx = textMatches("").findOnce(); var yhzs = textMatches("").findOnce() var syzyx = textMatches("").findOnce() var dlh = textMatches("").findOnce() if(szyx != null){ print(""); sleep(random(1000, 3000)) szyx.click() } if(yhzs != null){ print(""); sleep(random(1000, 3000)) yhzs.click() } if(syzyx != null){ print(""); sleep(random(1000, 3000)) syzyx.click() } if(dlh != null){ print(""); sleep(random(1000, 3000)) } }, 1000); }); print("点击授权完毕") sleep(random(5000, 8000)) swipe(); swipe(); swipe(); swipe(); print('视频滑动结束,开始关闭') print('设置系统属性') sleep(random(5000, 8000)) killApp(""); exit(); function swipe(){ //开始滑动视频 var x1 = random(255,870); var y1 = random(1700,1800); var x2 = random(255,870); var y2 = random(222,300); var time1 =random(3000,6000); var time2 =random(500,1000); sml_move(x1, y1, x2, y2,time2); sleep(random(12000, 13000)) } //app应用关闭 function killApp(name) { // 所以,填写包名或app名称都可以 var packageName = getPackageName(name) || getAppName(name); if (!packageName) { log("找不到packageName"+packageName); return; } // 打开系统级应用设置 app.openAppSetting(packageName); sleep(random(1000, 2000)); text(app.getAppName(packageName)).waitFor(); // 执行盲点流程 (多点几次不过分。都是非阻塞的。) var times = 3; // 多点几次,应对页面上存在一些其他tips文字,干扰流程。 do { stop(); times--; } while (times); sleep(random(1000, 1500)); back(); } // 盲点 function stop(){ var is_sure = className("android.widget.LinearLayout").desc("清除数据").findOne(); if (is_sure) { is_sure.click(); sleep(random(500, 1000)); } var is_sure2 = textMatches("清除全部数据").findOnce(); if (is_sure2) { is_sure2.click(); sleep(random(1000, 2000)); } var is_sure3 = textMatches("确定").findOnce(); if(is_sure3){ is_sure3.click(); sleep(random(1000, 2000)); } } 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 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; }; ``` 评论列表 写评论 您的IP:13.58.5.14,临时用户名:7cfb594b评论已接入DepyWAF审计与流量系统,请勿频繁操作导致IP拉黑 提交评论 © 版权声明:非标注『转载』情况下本文为原创文章,版权归 Depy's docs 所有,转载请联系博主获得授权。