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 window.onload 加载多个函数的方法
Nov 02 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
javascript表单验证使用示例(javascript验证邮箱)
Jan 07 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
JavaScript中的splice()方法使用详解
Jun 09 Javascript
详解如何使用webpack+es6开发angular1.x
Aug 16 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
Vue触发式全局组件构建的方法
Nov 28 Javascript
微信公众号H5支付接口调用方法
Jan 10 Javascript
轻松学习JavaScript函数中的 Rest 参数
May 30 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 XML操作类DOMDocument
2009/12/16 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
js中数组Array的一些常用方法总结
2013/08/12 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Python实现通讯录功能
2018/02/22 Python
flask session组件的使用示例
2018/12/25 Python
python线程的几种创建方式详解
2019/08/29 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
资深生产主管自我评价
2013/09/22 职场文书
开水果连锁店创业计划书
2013/12/29 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
劳模事迹材料范文
2014/12/24 职场文书
通讯稿范文
2015/07/22 职场文书
离婚财产分割协议书
2015/08/11 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技