开发者社区> 小凡晓宇> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

autojs操作列表-下载脚本商店代码

简介: 牙叔教程 简单易懂
+关注继续查看

牙叔教程 简单易懂

autojs软件自带的脚本商店有很多脚本 一个一个手动下载太麻烦给了, 我们写个脚本批量下载一下

效果

image

这样模拟手动下载就快多了, 也不用去分析协议之类的, 难度极低

脚本流程

while (1) {
  let listParentView = getListParentView();
  var len = listParentView.childCount();
  for (var i = 0; i < len; i++) {
    let itemView = listParentView.child(i);
    let downloadButton = itemView.child(0).child(1);
    downloadButton.click();
  }
  slideFromBottomToTop(listParentView);
}


  1. 获取商店脚本列表控件
  2. 遍历列表
  3. 下载条目
  4. 当前页面下载完成后, 滚动列表

处理几个小问题

  1. 找到控件后, 可视化控件, 也就是说在屏幕上, 显示找到的控件区域

image


显示控件区域方法:

显示一个全屏悬浮窗, 添加一个文本控件, 把文本控件的背景设置为一个框,

该框的区域和要显示的控件区域数据一致


var w = floaty.rawWindow(
  <frame>
    <text id="content" gravity="center">
      牙叔教程
    </text>
  </frame>
);
ui.run(function () {
  w.setSize(-1, -1);
  w.setTouchable(false);
});

ui.run(function () {
    contentView.attr("w", width + "px");
    contentView.attr("h", height + "px");
    contentView.attr("x", left);
    contentView.attr("y", top - status_bar_height);
    setBackgroundRoundedRectangle(contentView);
  });


  1. 怎么判断当前列表控件采集完了?

下载的时候, 记录下载的文件的标题, 如果都记录过了, 那就说明采集完了


  1. 怎么判断滚动到底了?

滚动之前记录列表最后一个项目的名字,

滚动之后记录列表最后一个项目的名字,

如果滚动前后二者一样, 就说明滚动到底了


  1. 需要考虑状态栏高度吗?

看手机, 有的手机悬浮窗可以覆盖状态栏, 有的手机不行, 以实际测试为准

获取状态栏高度:

const resources = context.getResources();
const status_bar_height = resources.getDimensionPixelSize(
  resources.getIdentifier("status_bar_height", "dimen", "android")
);


  1. 滚动控件用那个api
view.scrollForward();


  1. 获取控件高度
view.bounds().height();


下载完成

image


测试环境

手机: Mi 11 Pro
Android版本: 12
Autojs版本: 9.1.11


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程

声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用shell编写的git 提交代码的工具
作为一个校招新人由于每次提交代码都要进行git pull 和git merge 这一系列重复的操作, 而有时候提交的时候还会忘记git pull和git merge 所以我就想将这一系列指令封装起来作为一个命令,这样就能够避免一定程度的重复工作 接下来说干就干,这个工具我自己起名叫做ugit 使用的时候只需要ugit "commit content"就能够执行所有git命令。 使用步骤: 1.m
7 0
autojs获取网页源代码
牙叔教程 简单易懂
59 0
autojs 正弦 思维图
autojs 正弦 思维图
20 0
svn提交更新代码提示Please execute the 'Cleanup' command 的解决办法
svn提交更新代码提示Please execute the 'Cleanup' command 的解决办法
70 0
脚本操作zk
使用[root@localhost bin]# ./zkCli.sh连接本地zk 创建 create [-s] [-e] path data acl 其中,-s是创建顺序或临时结点。
986 0
基于链表编写“猫吃老鼠”
http://pan.baidu.com/s/1nvaTki1 这是一个简单的链表操作问题 "现有n个老鼠围成一圆圈,有一只猫从任意位置开始吃老鼠,每次都隔一个老鼠吃,请给出最后一个老鼠的编号?" 题目的具体要求是给出任给老鼠数n,输出猫最后吃的老鼠的编号。
854 0
【shell 脚本】根据给定的网址来使用相应的协议下载文件
现在要求写一个程序,接受命令行给定一个网址去下载一个文件,要求根据网址的协议的不同,采用不同的程序下载。如果给定的网址以.xml结尾,则认为要下载的文件已经在给定的网址中指定,否则要下载的文件名为本机的mac地址加.xml扩展名,不包括mac中的冒号。
563 0
+关注
329
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载