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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
Apr 05 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
如何获取select下拉框的值(option没有及有value属性)
Nov 08 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
May 17 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
JS数组的常用10种方法详解
May 08 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中文分词 自动获取关键词介绍
2012/11/13 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
在Python中使用列表生成式的教程
2015/04/27 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
用python制作游戏外挂
2018/01/04 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
个人现实表现材料
2014/02/04 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
医学生求职自荐书
2014/06/12 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
感恩节寄语2015
2015/03/24 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
Python find()、rfind()方法及作用
2022/12/24 Python