AutoJs实现刷宝短视频的思路详解


Posted in Javascript onMay 22, 2020

Auto.js 是个基于 JavaScript 语言运行在Android平台上的脚本框架。Auto.js主要工作原理是基于辅助服务AccessibilityService。

今天主要和大家分享一下刷刷刷过程中提示直播的窗体关闭问题,

我的手机判断一下android.widget.RelativeLayout控件的数量。9个是正常的超过了就是有直播提醒。当然不同的手机可能不一样,大家自己修改一下吧!

let liveVideo=className ("android.widget.RelativeLayout").find();
 if(liveVideo.length>9){
  clickScreen();
 }

其实还有一个思路:就是每一次都点击一下屏幕。

总体代码:

auto.waitFor();
let see_count = 1000;// rawInput('请输入滑动次数',"3000");
app.launchApp('刷宝短视频');
sleep(4000);
console.show(); //开启日志(悬浮窗权限)
authorityCancleTip();//点击权限取消按钮
for (var i = 1; i < see_count; i++) {
 toast("刷宝短视频滑动" + i + '次');
 console.log("刷宝短视频滑动" + i + '次' + "总计:" + see_count + "次");
 shuabaoCloseAD();
 randomDownSildeScreen();
 randomHeart();
 randomFollow();
 slideScreenDown(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
}
//退到主页面
home();
/**
 * 刷宝关闭广告
 */
function shuabaoCloseAD() {
 let liveVideo=className ("android.widget.RelativeLayout").find();
 if(liveVideo.length>9){
  clickScreen();
 }
 if (id("hotspot_imgdismiss").exists()) {
  id("hotspot_imgdismiss").findOnce().click();
 }
}
/**
 * 屏幕向下滑动并延迟8至12秒
 */
function slideScreenDown(startX, startY, endX, endY, pressTime) {
 swipe(startX, startY, endX, endY, pressTime);
 delayTime = random(8000, 10000);
 sleep(delayTime);//模仿人类随机时间
}
/**
 *点击一下屏幕
 */
function clickScreen() {
 var x = device.width - device.width * 0.2;
 var y = device.height - device.height * 0.2;
 toastLog("点击屏幕" + x + ":" + y);
 let clickResult = click(x, y);
 toastLog(clickResult);
}
function authorityCancleTip() {
 if(text("取消").exists()){
  text("取消").findOnce().click();
 }
 if (id("cancel").exists()) {
  id("cancel").findOnce().click();
 }
}
/**
 * 随机上滑(防止被判定是机器)上滑后停留时间至少是10S,造成假象表示是对内容感兴趣
 * 点赞和关注先不搞。
 */
function randomUpSildeScreen() {
 let randomIndex = random(1, 40);
 if (randomIndex == 1) {
  console.log("随机上滑被执行了");
  pressTime = random(200, 500);
  swipe(device.width / 2, 500, device.width / 2, device.height - 200, 700);
  delayTime = random(8000, 10000);
  sleep(delayTime);
 }
}
/**
 * 连续下滑对上一个无兴趣
 * 其实得和上滑做个排他,既然无兴趣不要在上滑
 */
function randomDownSildeScreen() {
 let randomIndex = random(1, 20);
 if (randomIndex == 1) {
  console.log("连续下滑被执行了");
  swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
  sleep(2000);
  swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
  delayTime = random(8000, 10000);
  sleep(delayTime);
 }
}
/**随机点赞并休息一秒 */
function randomHeart() {
 index = random(1, 10);
 if (index == 6) {
  if(id("praise").exists()){
   id("praise").findOnce().click();
  }
 }
}
function randomFollow() {
 index = random(1, 10);
 if (index == 6) {
  if(id('tv_ad_attention').exists()){
   id("tv_ad_attention").findOnce().click();
  }else{
   if(text("关注").exists()){
    text("关注").findOnce().click();
   }
  }
 }
}

总结

到此这篇关于AutoJs实现刷宝短视频的思路详解的文章就介绍到这了,更多相关AutoJs 刷宝短视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
intro.js 页面引导简单用法 分享
Aug 06 Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
Sep 16 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
Nov 24 Javascript
Vue自定义弹窗指令的实现代码
Aug 13 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 Javascript
jquery更改元素属性attr()方法操作示例
May 22 #jQuery
微信小程序转化为uni-app项目的方法示例
May 22 #Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 #Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 #jQuery
JS变量提升原理与用法实例浅析
May 22 #Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 #Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 #Javascript
You might like
PHP flock 文件锁详细介绍
2012/12/29 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
xtree.js 代码
2007/03/13 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Vue通过input筛选数据
2020/10/26 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
python爬虫headers设置后无效的解决方法
2017/10/21 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
PyQt5实现登录页面
2020/05/30 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
python属于哪种语言
2020/08/16 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
大学生水文观测实习自我鉴定
2013/09/29 职场文书
经典洗发水广告词
2014/03/13 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
《失物招领》教学反思
2016/02/20 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技