B2B网络软件

标题: AIWORK的界面交互: 返回键功能实现 [打印本页]

作者: YYPOST群发软件    时间: 5 天前
标题: AIWORK的界面交互: 返回键功能实现

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

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

参数

步骤

  1. 执行命令:

  2. 解析结果:

  3. 检查错误信息:

  4. 异常处理:

示例调用

该代码的目的是在 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. 定义坐标:

  2. 调用点击函数:

  3. 检查结果并输出:

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

agent.click(0.5,0.5)

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


agent.clickPercent(horizontalPercent, verticalPercent);


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

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

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

  2. 调用点击函数

  3. 输出结果

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

第六个例子,

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. 定义按键事件码

  2. simulateKeyPress 函数

  3. 调用按键事件

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

第九个例子,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("触摸操作完成");






欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2