注册 登录
发贴工具
查看: 49|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] AIWORK模拟点击功能: 实现精准的屏幕点击

[复制链接]

2227

主题

2275

帖子

1万

积分

积分
13566
跳转到指定楼层
楼主

第一个例子:开启代理模式判断

agent.start()

agent.start() 函数用于开启代理模式,需 root 权限,无需参数。此函数执行后会返回一个布尔值:如果成功返回 true,否则返回 false。下面是一个可能的使用例子:

 // 尝试启动代理模式
let result =agent.start();
printl(result);
if (result) {
    console.log("代理启动成功!");
} else {
    console.log("代理启动失败,请检查是否具有root权限。");
}

此代码尝试启动代理模式,并根据返回值判断启动是否成功。如果成功,会输出“代理启动成功!”,否则输出“代理启动失败,请检查是否具有root权限。”

第二例个例子:代理模式命令执行打开

adb.exec(‘ls’,false)

function executeShellCommand(command, isRoot) {
    try {
        let result = adb.exec(command, isRoot);
        let output = JSON.parse(result);


        if (output.errorMsg) {
            console.error("命令执行出错:", output.errorMsg);
        } else {
            console.log("命令执行成功, 输出结果:");
            console.log(output.success.replace(/\\n/g, '\n'));
        }
    } catch (error) {
        console.error("执行期间发生异常:", error);
    }
}


// 示例调用
executeShellCommand('ls', false);

函数 executeShellCommand

参数

  • command: 要执行的 shell 命令。
  • isRoot: 布尔值,表示是否以 root 权限执行命令。

步骤

  1. 执行命令:

    • 使用 adb.exec(command, isRoot) 来执行命令,并获取返回结果。
    • 返回结果被假设为 JSON 格式的字符串。
  2. 解析结果:

    • 使用 JSON.parse(result) 将结果字符串解析为对象 output
  3. 检查错误信息:

    • 如果 output.errorMsg 存在,表示执行过程中出现错误,输出错误信息。
    • 如果没有错误信息,表示命令执行成功,并输出执行结果。
  4. 异常处理:

    • 用 try-catch 块捕获执行过程中可能发生的异常,并输出异常信息。

示例调用

  • executeShellCommand('ls', false);: 调用该函数,执行 ls 命令,并不使用 root 权限。

该代码的目的是在 JavaScript 环境中通过 ADB 调用安卓设备的 shell 命令,并处理输出结果。

第三个例子,代理模式返回值,

agent.back()

function goBack() {
    // 按下返回键
    agent.back();
    console.log("返回键已按下");
}


// 调用示例
goBack();

第四个例子,代理模式真实座标点击

agent.click(100,100)

// 尝试点击屏幕上的某个位置
let xCoordinate = 100; // 横坐标
let yCoordinate = 100; // 纵坐标

let result = agent.click(xCoordinate, yCoordinate);

if (result) {
    console.log("点击成功!");
} else {
    console.log("点击失败,请检查坐标是否正确。");
}

goBack函数:

定义了一个函数goBack,用于按下返回键。
在函数内部调用agent.back(),执行返回操作。

agent.back():

这是一个没有参数也没有返回值的函数。
作用是模拟按下设备上的返回键。
  1. 定义坐标:

    • xCoordinate = 100:横向坐标设置为100。
    • yCoordinate = 100:纵向坐标设置为100。
  2. 调用点击函数:

    • agent.click(xCoordinate, yCoordinate):尝试点击指定的坐标。
  3. 检查结果并输出:

    • 如果resulttrue,说明点击成功,输出”点击成功!”。
    • 如果resultfalse,说明点击失败,输出”点击失败,请检查坐标是否正确。”。

第五个例子,代理模式点击屏幕百分比座标

agent.click(0.5,0.5)

// 尝试点击屏幕中心位置
let horizontalPercent = 0.144; // 横坐标百分比
let verticalPercent = 0.3292;   // 纵坐标百分比


agent.clickPercent(horizontalPercent, verticalPercent);


console.log("已在屏幕中心点击。");

这段代码实现了在屏幕中心的点击操作。具体步骤如下:

  1. 定义点击位置的百分比坐标

    • horizontalPercentverticalPercent分别定义了横坐标和纵坐标的百分比值。0.5表示水平方向和垂直方向的50%位置,也就是屏幕的中心。
  2. 调用点击函数

    • agent.clickPercent(horizontalPercent, verticalPercent); 这行代码使用百分比坐标在屏幕上执行点击操作。
  3. 输出结果

    • console.log("已在屏幕中心点击。"); 输出一条信息表示点击已在屏幕中心完成。

这个函数通常在自动化测试或脚本中使用,用于模拟用户点击动作。

第六个例子,

agent.home()

// 按下设备的HOME键
agent.home();

console.log("已经返回到主屏幕。");

解释:

agent.home():调用该方法来模拟按下设备的HOME键,使设备返回到主屏幕。
console.log(“已经返回到主屏幕。”):输出一条信息到控制台,表示操作已完成。

第七个例子,ADB代理模式输入一个字符串

agent.input(‘123456’)

// 输入一个字符串
let inputString = '123456';
agent.input(inputString);

// 输出信息以确认输入操作
console.log("已输入字符串:", inputString);

使用agent.input函数来模拟输入数字字符。该函数只支持英文字符和数字字符,不支持中文字符。

第八个例子,ADB代理模式常用按键事件码

agent.keyPress(3)

// 定义常用按键事件码
const KEYCODE_HOME = 3;         // Home 键
const KEYCODE_BACK = 4;         // Back 键
const KEYCODE_MENU = 82;        // Menu 键
const KEYCODE_VOLUME_UP = 24;   // 音量增大键
const KEYCODE_VOLUME_DOWN = 25; // 音量减小键
const KEYCODE_POWER = 26;       // 电源键


// 示例调用不同的按键事件
function simulateKeyPress(keyCode) {
    let result = agent.keyPress(keyCode);
    if (result) {
        console.log("按键事件成功:", keyCode);
    } else {
        console.log("按键事件失败:", keyCode);
    }
}


// 调用按键事件
simulateKeyPress(KEYCODE_HOME);
simulateKeyPress(KEYCODE_BACK);
simulateKeyPress(KEYCODE_MENU);
simulateKeyPress(KEYCODE_VOLUME_UP);
simulateKeyPress(KEYCODE_VOLUME_DOWN);
simulateKeyPress(KEYCODE_POWER);

这段代码定义了一些常用的按键事件码,并通过 simulateKeyPress 函数来模拟按键事件。以下是代码的详细说明:

  1. 定义按键事件码

    • KEYCODE_HOMEKEYCODE_BACKKEYCODE_MENUKEYCODE_VOLUME_UPKEYCODE_VOLUME_DOWN 和 KEYCODE_POWER 是对应不同按键的事件码,分别用于模拟按手机上不同的按钮。
  2. simulateKeyPress 函数

    • 接收一个 keyCode 参数,表示要模拟的按键。
    • 使用 agent.keyPress(keyCode) 方法模拟按键事件。
    • 根据 result 的值来判断按键事件是否成功,并输出相应的日志信息。
  3. 调用按键事件

    • 使用 simulateKeyPress 函数依次模拟 HOME、BACK、MENU、音量增大、音量减小以及电源按键的事件。

通过这个代码,可以轻松地在程序中模拟各种常用按键的按下操作。

第九个例子,ADB截取代理模式的屏幕截图

agent.screenShot(374,666,100)

// 设置截图的宽度、高度和质量
let width = 374.0;
let height = 666.0;
let quality = 100;


// 截取代理模式的屏幕截图
let img = agent.screenShot(width, height, quality);


printl(img);

变量定义:

width: 设置截图的宽度为374像素。
height: 设置截图的高度为666像素。
quality: 设置截图质量为100。

截屏操作:

使用 agent.screenShot(width, height, quality) 方法截取屏幕截图,并将返回的图像对象存储在 img 变量中。

结果检查:

通过判断 img 是否为真值来检查截屏是否成功。

第十个例子,执行Shell命令,通过坐标模拟点击屏幕

agent.shell(‘input tap 455 974’)

// 执行Shell命令,通过坐标模拟点击屏幕
let command = 'input tap 455 974';
let result = agent.shell(command);

// 检查命令是否成功执行
if (result) {
    console.log("Shell命令执行成功:", result);
} else {
    console.log("Shell命令执行失败");
}

变量 command:存储要执行的Shell命令,这里是模拟点击屏幕指定位置 (455, 974)。
agent.shell(command):发送命令给设备进行执行。
“tap” 是一个用于模拟触摸屏幕的命令。执行这个命令会在指定的坐标位置模拟一次点击动作。

第十一个例子,代理模式滑动功能

agent.swip(50,100,500,100,10,0,0)

// 设置滑动的起点和终点坐标
let startX = 50;  // 起点横坐标
let startY = 100; // 起点纵坐标
let endX = 500;   // 终点横坐标
let endY = 100;   // 终点纵坐标


// 滑动的其他参数
let steps = 10;       // 步数中间移动几步
let downTime = 0;     // 按下延时毫秒
let upTime = 0;       // 拾起延时毫秒


// 执行滑动操作
agent.swip(startX, startY, endX, endY, steps, downTime, upTime);


printl("滑动操作已完成");

演示了如何使用 swip 函数从起点滑动到终点。以下是参数的详细说明:

int x1, y1: 起点的横坐标和纵坐标。
int x2, y2: 终点的横坐标和纵坐标。
int steps: 从起点到终点,滑动所需的步数。
int downTime: 按下延迟时间(毫秒)。
int upTime: 抬起延迟时间(毫秒)。

第十一个例子,代理模式AI模拟手工滑动功能

agent.swipAI(0,0,0,0)

// 使用AI算法进行滑动,从起点(0,0)到终点(500,500)
let startX = 0;    // 起点横坐标
let startY = 0;    // 起点纵坐标
let endX = 500;    // 终点横坐标
let endY = 500;    // 终点纵坐标

// 调用AI滑动函数
agent.swipAI(startX, startY, endX, endY);

// 你的额外逻辑处理
console.log("AI滑动操作完成.");

说明
arg0: int startX — 滑动开始的横坐标。
arg1: int startY — 滑动开始的纵坐标。
arg2: int endX — 滑动结束的横坐标。
arg3: int endY — 滑动结束的纵坐标。

这个函数模仿人手势的滑动,适用于需要模拟真实触屏滑动的场景。

第十二个例子,代理模式按下,移动,抬起

agent.touchDown(0,0,0)

agent.touchMove(0,0,0)

agent.touchUp(0)



// 模拟一个在屏幕上点击并拖动的动作

// 在位置 (100, 100) 触摸屏幕
agent.touchDown(0, 100, 100);

// 将触摸移动到位置 (200, 200)
agent.touchMove(0, 200, 200);

// 松开触摸
agent.touchUp(0);

何使用 touchDown、touchMove 和 touchUp 方法组合来模拟一个从屏幕上的一个点移动到另一个点的拖动效果。

所有代码进行组合:

// 开启代理模式
agent.start();
console.log("代理模式已开启");


// 执行Shell命令
agent.shell('input tap 455 974');
console.log("执行Shell命令完成");


// 屏幕截图
let img = agent.screenShot(374, 666, 100);
console.log("截图操作完成");


// 模拟按键事件
const KEYCODE_HOME = 3;
agent.keyPress(KEYCODE_HOME);
console.log("模拟按键完成");


// 模拟点击屏幕
agent.click(100, 100);
console.log("屏幕点击完成");


// 模拟滑动操作
agent.swip(50, 100, 500, 200, 10, 0, 0);
console.log("滑动操作完成");


// AI模拟手工滑动
agent.swipAI(0, 0, 500, 500);
console.log("AI滑动操作完成");


// 模拟触摸
agent.touchDown(0, 100, 100);
agent.touchMove(0, 200, 200);
agent.touchUp(0);
console.log("触摸操作完成");


untoActivity间通信:安卓开发中的数据传递nextAIWORK软件图片二值化封装使用方法说明
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖