|
|
资讯缩略图:
资讯发布日期:2026-06-16
资讯发布简介:安卓脚本HID节点查找完整方法示例
资讯关键词:安卓脚本HID节点查找完整方法示例
资讯所属分类:IT资讯
联系:
① 本信息收集于网络,如有不对的地方欢迎联系我纠正! ② 本信息免费收录,不存在价格的问题! ③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!
④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/
资讯详细描述
 | |  |  | HID节点查找完整方法示例
- // ==================== HID 节点查找完整方法示例 ====================
- // 基于 查找节点_HID.js 的方法演示
- // 🍎交流QQ群:711841924(群)
- // 🍎交流QQ群:528816639 (安卓内测群)
- /**
- * 封装的节点查找函数
- * @param {Object} 查找 - hid.nodeSearch()返回的节点集合对象
- * @param {Boolean} 是否点击 - 是否执行点击操作
- * @param {Object} 节点返回 - 用于返回结果的容器对象
- * @returns {Boolean} 查找是否成功
- */
- function 查找节点_HID(查找, 是否点击, 节点返回) {
- try {
- // 初始化返回对象
- 节点返回.数量 = 0;
- 节点返回.数组 = null;
- 节点返回.返回信息 = null;
-
- // 增强的安全检查
- if (!查找 || typeof 查找 === 'undefined' || 查找 === null) {
- return false;
- }
-
- // 检查是否有length方法并且可以调用
- if (typeof 查找.length !== 'function') {
- return false;
- }
- var a = 0;
- try {
- a = 查找.length();
- } catch (lenErr) {
- console.log("获取节点长度出错:", lenErr);
- return false;
- }
-
- if (a <= 0) {
- return false;
- }
- 节点返回.数量 = a;
- 节点返回.数组 = 查找;
- // 正序:获取第一个节点(索引0)
- let nodeObj = null;
- try {
- nodeObj = 查找.getNode(0);
- } catch (nodeErr) {
- console.log("获取节点对象出错:", nodeErr);
- return false;
- }
-
- if (!nodeObj) {
- return false;
- }
- 节点返回.返回信息 = nodeObj;
- if (是否点击) {
- let 矩形区域 = null;
- try {
- 矩形区域 = nodeObj.getBounds();
- } catch (boundsErr) {
- console.log("获取节点边界出错:", boundsErr);
- return false;
- }
-
- if (!矩形区域) {
- return false;
- }
-
- let x = 矩形区域.getLeft();
- let y = 矩形区域.getTop();
- let x1 = 矩形区域.getRight();
- let y1 = 矩形区域.getBottom();
- let 随机x, 随机y;
- if ((x1 - x) >= 20 && (y1 - y) >= 20) {
- let minX = Math.max(x + 10, 0);
- let maxX = Math.max(x1 - 10, 0);
- let minY = Math.max(y + 10, 0);
- let maxY = Math.max(y1 - 10, 0);
- 随机x = 取随机数(minX, maxX);
- 随机y = 取随机数(minY, maxY);
- } else {
- let 坐标返回 = String(nodeObj.getCenterPoint());
- let coordArr = 坐标返回.split(',');
- 随机x = parseFloat(coordArr[0]);
- 随机y = parseFloat(coordArr[1]);
- }
- // 使用原有的点击模式函数
- 点击模式(随机x, 随机y, 设定模式);
- }
- return true;
- } catch (e) {
- console.log("查找节点_HID出错:", e);
- 节点返回.数量 = 0;
- 节点返回.数组 = null;
- 节点返回.返回信息 = null;
- return false;
- }
- }
- // ==================== 示例演示 ====================
- // 示例1: 点击"通知与状态栏"菜单项
- function 示例1_点击通知与状态栏() {
- printl("\n===== 示例1: 点击'通知与状态栏'菜单项 =====");
-
- // 查找"通知与状态栏"节点
- var nodesObj = hid.nodeSearch(3000)
- .text("通知与状态栏")
- .id("title")
- .className("android.widget.TextView");
-
- if (nodesObj != '' && nodesObj.length() > 0) {
- printl("✓ 找到'通知与状态栏'节点");
-
- // 获取第一个节点对象
- var nodeObj = nodesObj.getNode(0);
-
- if (nodeObj) {
- printl("✓ 获取到节点对象");
-
- // 打印节点详细信息
- var nodeText = nodeObj.getText();
- printl(" - 文本: " + (nodeText || "(空)"));
- printl(" - 类名: " + nodeObj.getClassName());
- printl(" - 可点击: " + nodeObj.isClickable());
-
- // 获取节点中心点坐标
- var centerPoint = nodeObj.getCenterPoint();
- var x = centerPoint.x();
- var y = centerPoint.y();
-
- printl("✓ 节点中心坐标: X=" + x + ", Y=" + y);
-
- // 使用HID执行点击
- hid.click(x, y);
- printl("✓ 已成功点击'通知与状态栏'");
-
- // 倒计时2秒
- printl("→ 倒计时2秒后返回...");
- sleep.second(秒=2);
-
- // 返回上一页
- printl("→ 正在返回上一页...");
- hid.back();
- sleep.millisecond(毫秒=1500); // 返回后等待1.5秒确保页面加载完成
- printl("✓ 已返回");
-
- return true;
- } else {
- printl("✗ 无法获取节点对象");
- return false;
- }
- } else {
- printl("✗ 未找到'通知与状态栏'节点");
- return false;
- }
- }
- // 示例2: 点击"显示与亮度"菜单项
- function 示例2_点击显示与亮度() {
- printl("\n===== 示例2: 点击'显示与亮度'菜单项 =====");
-
- // 查找"显示与亮度"节点
- var nodesObj = hid.nodeSearch(3000)
- .text("显示与亮度")
- .id("title")
- .className("android.widget.TextView");
-
- if (nodesObj != '' && nodesObj.length() > 0) {
- printl("✓ 找到'显示与亮度'节点");
-
- // 获取第一个节点对象
- var nodeObj = nodesObj.getNode(0);
-
- if (nodeObj) {
- printl("✓ 获取到节点对象");
-
- // 打印节点详细信息
- var nodeText = nodeObj.getText();
- printl(" - 文本: " + (nodeText || "(空)"));
- printl(" - 类名: " + nodeObj.getClassName());
-
- // 获取节点中心点坐标
- var centerPoint = nodeObj.getCenterPoint();
- var x = centerPoint.x();
- var y = centerPoint.y();
-
- printl("✓ 节点中心坐标: X=" + x + ", Y=" + y);
-
- // 使用HID执行点击
- hid.click(x, y);
- printl("✓ 已成功点击'显示与亮度'");
-
- // 倒计时2秒
- printl("→ 倒计时2秒后返回...");
- sleep.second(秒=2);
-
- // 返回上一页
- printl("→ 正在返回上一页...");
- hid.back();
- sleep.millisecond(毫秒=1500); // 返回后等待1.5秒确保页面加载完成
- printl("✓ 已返回");
-
- return true;
- } else {
- printl("✗ 无法获取节点对象");
- return false;
- }
- } else {
- printl("✗ 未找到'显示与亮度'节点");
- return false;
- }
- }
- // 示例3: 点击"声音与触感"菜单项
- function 示例3_点击声音与触感() {
- printl("\n===== 示例3: 点击'声音与触感'菜单项 =====");
-
- // 查找"声音与触感"节点
- var nodesObj = hid.nodeSearch(3000)
- .text("声音与触感")
- .id("title")
- .className("android.widget.TextView");
-
- if (nodesObj != '' && nodesObj.length() > 0) {
- printl("✓ 找到'声音与触感'节点");
-
- // 获取第一个节点对象
- var nodeObj = nodesObj.getNode(0);
-
- if (nodeObj) {
- printl("✓ 获取到节点对象");
-
- // 打印节点详细信息
- var nodeText = nodeObj.getText();
- printl(" - 文本: " + (nodeText || "(空)"));
- printl(" - 类名: " + nodeObj.getClassName());
-
- // 获取节点中心点坐标
- var centerPoint = nodeObj.getCenterPoint();
- var x = centerPoint.x();
- var y = centerPoint.y();
-
- printl("✓ 节点中心坐标: X=" + x + ", Y=" + y);
-
- // 使用HID执行点击
- hid.click(x, y);
- printl("✓ 已成功点击'声音与触感'");
-
- // 倒计时2秒
- printl("→ 倒计时2秒后返回...");
- sleep.second(秒=2);
-
- // 返回上一页
- printl("→ 正在返回上一页...");
- hid.back();
- sleep.millisecond(毫秒=1500); // 返回后等待1.5秒确保页面加载完成
- printl("✓ 已返回");
-
- return true;
- } else {
- printl("✗ 无法获取节点对象");
- return false;
- }
- } else {
- printl("✗ 未找到'声音与触感'节点");
- return false;
- }
- }
- // 示例4: 点击"桌面"菜单项
- function 示例4_点击桌面() {
- printl("\n===== 示例4: 点击'桌面'菜单项 =====");
-
- // 查找"桌面"节点
- var nodesObj = hid.nodeSearch(3000)
- .text("桌面")
- .id("title")
- .className("android.widget.TextView");
-
- if (nodesObj != '' && nodesObj.length() > 0) {
- printl("✓ 找到'桌面'节点");
-
- // 获取第一个节点对象
- var nodeObj = nodesObj.getNode(0);
-
- if (nodeObj) {
- printl("✓ 获取到节点对象");
-
- // 打印节点详细信息
- var nodeText = nodeObj.getText();
- printl(" - 文本: " + (nodeText || "(空)"));
- printl(" - 类名: " + nodeObj.getClassName());
-
- // 获取节点中心点坐标
- var centerPoint = nodeObj.getCenterPoint();
- var x = centerPoint.x();
- var y = centerPoint.y();
-
- printl("✓ 节点中心坐标: X=" + x + ", Y=" + y);
-
- // 使用HID执行点击
- hid.click(x, y);
- printl("✓ 已成功点击'桌面'");
-
- // 倒计时2秒
- printl("→ 倒计时2秒后返回...");
- sleep.second(秒=2);
-
- // 返回上一页
- printl("→ 正在返回上一页...");
- hid.back();
- sleep.millisecond(毫秒=1500); // 返回后等待1.5秒确保页面加载完成
- printl("✓ 已返回");
-
- return true;
- } else {
- printl("✗ 无法获取节点对象");
- return false;
- }
- } else {
- printl("✗ 未找到'桌面'节点");
- return false;
- }
- }
- // ==================== 执行示例 ====================
- printl("\n========== HID 节点查找方法演示 ==========\n");
- // 按顺序执行所有示例
- 示例1_点击通知与状态栏();
- 示例2_点击显示与亮度();
- 示例3_点击声音与触感();
- 示例4_点击桌面();
- printl("\n===========================================\n");
- printl("✓ 所有示例演示完成!");
复制代码
| |  | |  |
|
untoAIWROK软件框架的抖音自动化营销系统nextnocontent
|