B2B网络软件
标题:
AIWROK软件安卓汇集软件点击方法示例
[打印本页]
作者:
YYPOST群发软件
时间:
昨天 09:03
标题:
AIWROK软件安卓汇集软件点击方法示例
AIWROK软件安卓汇集软件点击方法示例
1.png
(963.8 KB, 下载次数: 0)
下载附件
昨天 09:02
上传
2.png
(735.91 KB, 下载次数: 0)
下载附件
昨天 09:02
上传
3.png
(826.93 KB, 下载次数: 0)
下载附件
昨天 09:02
上传
// 安卓AIWROK汇集软件点击
// 🍎交流QQ群711841924群一,苹果内测群,528816639
// 兼容ES5标准,仅支持安卓设备运行
// 初始化日志窗口
if (typeof logWindow !== 'undefined') {
print.log(logWindow.show());
print.log(logWindow.clear());
print.log(logWindow.setHeight(2500));
print.log(logWindow.setWidth(1500));
print.log(logWindow.setNoClickModel());
}
// 兼容ES5的延迟函数
function es5Sleep(ms) {
if (typeof sleep !== 'undefined') {
if (typeof sleep.millisecond === 'function') {
sleep.millisecond(ms);
} else if (typeof sleep === 'function') {
sleep(ms);
}
} else {
// 纯JavaScript实现的延迟
var start = new Date().getTime();
while (new Date().getTime() - start < ms) {
// 空循环延迟
}
}
}
// ==================== 1. 按钮点击事件监听 ====================
/**
* 设置按钮点击事件监听器
* @param {Object} button - 按钮对象
* @param {Function} callback - 点击回调函数
*/
function setButtonClickListener(button, callback) {
if (button && button.setOnClickListener) {
try {
button.setOnClickListener(callback);
print.log("按钮点击事件监听器设置成功");
} catch (e) {
print.log("设置按钮点击事件监听器时出错: " + e);
}
} else {
print.log("无效的按钮对象");
}
}
// 示例用法
function buttonClickExample() {
// 假设我们有一个按钮对象
// var btn_start = f1.findViewById('startButton');
// 设置点击事件
/*
setButtonClickListener(btn_start, function() {
printl("启动按钮被点击");
// 执行启动逻辑
});
*/
print.log("按钮点击事件示例演示完成");
}
// ==================== 2. 屏幕坐标点击 ====================
/**
* 点击屏幕指定坐标
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function clickScreen(x, y) {
try {
if (typeof auto !== 'undefined' && typeof auto.clickPoint === 'function') {
auto.clickPoint(x, y);
print.log("使用auto.clickPoint点击坐标 (" + x + ", " + y + ")");
return true;
} else if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
hid.click(x, y);
print.log("使用hid.click点击坐标 (" + x + ", " + y + ")");
return true;
} else {
print.log("未找到可用的点击方法");
return false;
}
} catch (e) {
print.log("点击屏幕失败: " + e);
return false;
}
}
// 示例用法
function screenClickExample() {
// 点击屏幕中心位置
var screenWidth = 1080; // 假设屏幕宽度
var screenHeight = 1920; // 假设屏幕高度
var centerX = screenWidth / 2;
var centerY = screenHeight / 2;
clickScreen(centerX, centerY);
print.log("屏幕坐标点击示例演示完成");
}
// ==================== 3. 带重试机制的安全点击 ====================
/**
* 安全点击(带重试机制)
* @param {number} x - x坐标
* @param {number} y - y坐标
* @param {number} retries - 重试次数
* @returns {boolean} 是否点击成功
*/
function safeClick(x, y, retries) {
if (typeof retries === 'undefined') retries = 3;
for (var i = 0; i < retries; i++) {
try {
if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
hid.click(x, y);
print.log("点击坐标 (" + x + ", " + y + ") 成功");
return true;
} else if (typeof auto !== 'undefined' && typeof auto.clickPoint === 'function') {
auto.clickPoint(x, y);
print.log("点击坐标 (" + x + ", " + y + ") 成功");
return true;
}
} catch (error) {
print.log("点击失败,重试第 " + (i + 1) + " 次:" + error);
// 兼容ES5的sleep调用
es5Sleep(500);
}
}
print.log("点击坐标 (" + x + ", " + y + ") 最终失败");
return false;
}
// 示例用法
function safeClickExample() {
safeClick(500, 500, 3);
print.log("安全点击示例演示完成");
}
// ==================== 4. 找字点击 ====================
/**
* 找字并点击功能
* @param {string} targetText - 要查找并点击的文字
* @param {array} region - 搜索区域,可选参数 [x1, y1, x2, y2]
* @param {object} ocr - OCR实例
* @returns {boolean} 是否成功点击
*/
function findTextAndClick(targetText, region, ocr) {
try {
var result;
if (region && region.length == 4) {
// 区域找字
// result = ocr.recognize(region[0], region[1], region[2], region[3]);
print.log("在区域 " + region + " 中查找文字: " + targetText);
} else {
// 全屏找字
// result = ocr.recognize(0, 0, screenWidth, screenHeight);
print.log("在全屏中查找文字: " + targetText);
}
// 模拟找到文字的情况
var mockResult = {
text: targetText,
centerX: 500,
centerY: 500
};
if (mockResult) {
print.log('准备点击文字: ' + mockResult.text);
print.log('点击坐标: (' + mockResult.centerX + ', ' + mockResult.centerY + ')');
// 添加随机偏移模拟真实点击
var randomX = mockResult.centerX + (Math.random() - 0.5) * 10;
var randomY = mockResult.centerY + (Math.random() - 0.5) * 10;
clickScreen(randomX, randomY);
es5Sleep(500);
return true;
} else {
print.log('未找到可点击的文字: ' + targetText);
return false;
}
} catch (e) {
print.log('找字点击失败: ' + e);
return false;
}
}
// 示例用法
function findTextClickExample() {
findTextAndClick("确定", [0, 0, 1080, 1920]);
print.log("找字点击示例演示完成");
}
// ==================== 5. 系统事件监听 ====================
/**
* 设置系统事件监听器
*/
function setupSystemEventListeners() {
// 开始按钮事件监听
try {
if (typeof event !== 'undefined' && typeof event.onStartEvent === 'function') {
event.onStartEvent(function(){
print.log('开始按钮被点击');
});
print.log("开始按钮事件监听器设置成功");
}
} catch (e) {
print.log("设置开始按钮事件监听器时出错: " + e);
}
// 暂停按钮事件监听
try {
if (typeof event !== 'undefined' && typeof event.onPauseEvent === 'function') {
event.onPauseEvent(function(){
print.log('暂停按钮被点击');
});
print.log("暂停按钮事件监听器设置成功");
}
} catch (e) {
print.log("设置暂停按钮事件监听器时出错: " + e);
}
// 停止按钮事件监听
try {
if (typeof event !== 'undefined' && typeof event.onStopEvent === 'function') {
event.onStopEvent(function(){
print.log('停止按钮被点击');
});
print.log("停止按钮事件监听器设置成功");
}
} catch (e) {
print.log("设置停止按钮事件监听器时出错: " + e);
}
}
// 示例用法
function systemEventExample() {
setupSystemEventListeners();
print.log("系统事件监听示例演示完成");
}
// ==================== 6. 网页按钮点击 ====================
/**
* 网页按钮点击示例代码
* 注意:此代码应在H5页面中使用
*/
var webButtonClickExample = {
// HTML部分
html: '<button onclick="showTextValue()">显示文本值</button> ' +
'<button onclick="runStartScript()">执行开始脚本</button> ' +
'<button class="danger" onclick="closePage()">关闭页面</button>',
// JavaScript部分
javascript: '// 显示文本值\n' +
'function showTextValue() {\n' +
' var inputText = document.getElementById("inputText");\n' +
' if (inputText) {\n' +
' printLog("文本值: " + inputText.value);\n' +
' }\n' +
'}\n' +
'\n' +
'// 执行开始脚本\n' +
'function runStartScript() {\n' +
' printLog("执行开始脚本");\n' +
' // 这里可以调用AIWROK的API\n' +
'}\n' +
'\n' +
'// 关闭页面\n' +
'function closePage() {\n' +
' printLog("关闭页面");\n' +
' if (typeof dismiss === "function") {\n' +
' dismiss();\n' +
' }\n' +
'}\n' +
'\n' +
'// 使用addEventListener方式\n' +
'function setupEventListeners() {\n' +
' var buttons = document.querySelectorAll("button");\n' +
' for (var i = 0; i < buttons.length; i++) {\n' +
' (function(button) {\n' +
' button.addEventListener("click", function() {\n' +
' printLog("按钮被点击: " + this.textContent);\n' +
' });\n' +
' })(buttons[i]);\n' +
' }\n' +
'}'
};
// ==================== 7. HID点击方式 ====================
/**
* 使用HID方式点击屏幕
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function hidClick(x, y) {
try {
if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
hid.click(x, y);
print.log("HID点击坐标 (" + x + ", " + y + ") 成功");
return true;
} else {
print.log("HID模块不可用,尝试使用其他点击方式");
// 回退到通用点击方法
return clickScreen(x, y);
}
} catch (e) {
print.log("HID点击失败: " + e);
return false;
}
}
// 示例用法
function hidClickExample() {
hidClick(500, 500);
print.log("HID点击示例演示完成");
}
// ==================== 8. 组合点击示例 ====================
/**
* 组合点击示例
* 演示多种点击方式的组合使用
*/
function combinedClickExample() {
print.log("=== 组合点击示例开始 ===");
// 1. 先点击屏幕中央
clickScreen(540, 960);
// 兼容ES5的延迟处理
es5Sleep(1000);
// 2. 使用安全点击点击确定按钮
safeClick(800, 1600, 3);
// 兼容ES5的延迟处理
es5Sleep(1000);
// 3. 模拟找字点击
findTextAndClick("下一步");
print.log("=== 组合点击示例结束 ===");
}
// ==================== 9. 找图点击 ====================
/**
* 找图并点击功能
* @param {string} imagePath - 图片路径
* @returns {boolean} 是否成功点击
*/
function findImageAndClick(imagePath) {
try {
print.log("开始找图: " + imagePath);
// 检查opencv是否可用
if (typeof opencv !== 'undefined' && typeof opencv.findImagesEx === 'function') {
var detects = opencv.findImagesEx(imagePath);
if (detects !== null && detects.length > 0) {
print.log("找到目标: " + detects);
// 点击第一个找到的目标
if (typeof detects[0] !== 'undefined' && typeof detects[0].click === 'function') {
detects[0].click();
print.log("点击目标成功");
return true;
} else if (typeof detects[0] !== 'undefined' && typeof detects[0].x !== 'undefined' && typeof detects[0].y !== 'undefined') {
// 如果没有click方法,尝试直接点击坐标
var x = detects[0].x;
var y = detects[0].y;
clickScreen(x, y);
print.log("点击坐标 (" + x + ", " + y + ") 成功");
return true;
}
} else {
print.log("未找到目标");
return false;
}
} else {
print.log("opencv模块不可用");
return false;
}
} catch (e) {
print.log("找图点击失败: " + e);
return false;
}
}
// 示例用法
function findImageClickExample() {
// 使用指定的图片名称
var result = findImageAndClick('图色766772.cv');
print.log("找图点击示例演示完成,结果: " + result);
}
// ==================== 10. 其他点击方式 ====================
/**
* 点击百分比坐标
* @param {number} percentX - X轴百分比 (0-100)
* @param {number} percentY - Y轴百分比 (0-100)
* @returns {boolean} 是否点击成功
*/
function clickPercent(percentX, percentY) {
try {
if (typeof auto !== 'undefined' && typeof auto.clickPercent === 'function') {
auto.clickPercent(percentX, percentY);
print.log("使用auto.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
return true;
} else if (typeof agent !== 'undefined' && typeof agent.clickPercent === 'function') {
agent.clickPercent(percentX, percentY);
print.log("使用agent.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
return true;
} else if (typeof hid !== 'undefined' && typeof hid.clickPercent === 'function') {
hid.clickPercent(percentX, percentY);
print.log("使用hid.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
return true;
} else {
print.log("未找到可用的百分比点击方法");
return false;
}
} catch (e) {
print.log("点击百分比坐标失败: " + e);
return false;
}
}
/**
* 连续点击
* @param {number} x - x坐标
* @param {number} y - y坐标
* @param {number} count - 点击次数
* @param {number} interval - 点击间隔(毫秒)
* @returns {boolean} 是否点击成功
*/
function clickMultiple(x, y, count, interval) {
try {
if (typeof hid !== 'undefined' && typeof hid.clicks === 'function') {
hid.clicks(x, y, count, interval);
print.log("使用hid.clicks连续点击 (" + x + ", " + y + ") " + count + " 次");
return true;
} else {
// 模拟连续点击
for (var i = 0; i < count; i++) {
clickScreen(x, y);
if (i < count - 1) {
es5Sleep(interval || 100);
}
}
print.log("模拟连续点击 (" + x + ", " + y + ") " + count + " 次");
return true;
}
} catch (e) {
print.log("连续点击失败: " + e);
return false;
}
}
/**
* 代理模式点击
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function agentClick(x, y) {
try {
if (typeof agent !== 'undefined' && typeof agent.click === 'function') {
agent.click(x, y);
print.log("使用agent.click点击坐标 (" + x + ", " + y + ")");
return true;
} else {
print.log("代理模块不可用");
return false;
}
} catch (e) {
print.log("代理点击失败: " + e);
return false;
}
}
/**
* 元素点击
* @param {Object} node - 元素节点
* @returns {boolean} 是否点击成功
*/
function clickElement(node) {
try {
if (node && typeof node.click === 'function') {
node.click();
print.log("点击元素成功");
return true;
} else if (node && typeof node.clickPoint === 'function') {
node.clickPoint();
print.log("点击元素坐标成功");
return true;
} else {
print.log("无效的元素节点或无点击方法");
return false;
}
} catch (e) {
print.log("点击元素失败: " + e);
return false;
}
}
/**
* 监听点击事件
* @param {Function} callback - 点击回调函数
* @returns {boolean} 是否设置成功
*/
function setupClickEventListener(callback) {
try {
if (typeof event !== 'undefined' && typeof event.onClickEvent === 'function') {
event.onClickEvent(callback);
print.log("点击事件监听器设置成功");
return true;
} else {
print.log("事件模块不可用");
return false;
}
} catch (e) {
print.log("设置点击事件监听器失败: " + e);
return false;
}
}
// 示例用法
function otherClickMethodsExample() {
print.log("=== 其他点击方式示例开始 ===");
// 测试百分比点击
clickPercent(50, 50);
es5Sleep(500);
// 测试连续点击
clickMultiple(500, 500, 3, 200);
es5Sleep(500);
// 测试代理点击
agentClick(600, 600);
es5Sleep(500);
// 测试点击事件监听
setupClickEventListener(function(x, y) {
print.log("监听到点击事件: (" + x + ", " + y + ")");
});
print.log("=== 其他点击方式示例结束 ===");
}
// ==================== 演示所有点击方式 ====================
/**
* 演示所有点击方式
*/
function demoAllClickMethods() {
print.log("\n==================== 安卓AIWROK点击方式演示 ====================");
print.log("\n1. 按钮点击事件监听示例:");
buttonClickExample();
print.log("\n2. 屏幕坐标点击示例:");
screenClickExample();
print.log("\n3. 安全点击示例:");
safeClickExample();
print.log("\n4. 找字点击示例:");
findTextClickExample();
print.log("\n5. 系统事件监听示例:");
systemEventExample();
print.log("\n6. HID点击示例:");
hidClickExample();
print.log("\n7. 组合点击示例:");
combinedClickExample();
print.log("\n8. 找图点击示例:");
findImageClickExample();
print.log("\n9. 其他点击方式示例:");
otherClickMethodsExample();
print.log("\n==================== 演示完成 ====================");
print.log("\n网页按钮点击示例代码:\n" + webButtonClickExample.html);
print.log("\n网页按钮点击JavaScript代码:\n" + webButtonClickExample.javascript);
}
// 运行演示
demoAllClickMethods();
// 导出常用函数
var ClickUtils = {
click: clickScreen,
safeClick: safeClick,
findTextAndClick: findTextAndClick,
findImageAndClick: findImageAndClick,
hidClick: hidClick,
clickPercent: clickPercent,
clickMultiple: clickMultiple,
agentClick: agentClick,
clickElement: clickElement,
setupClickEventListener: setupClickEventListener,
setButtonClickListener: setButtonClickListener,
setupSystemEventListeners: setupSystemEventListeners
};
复制代码
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/)
Powered by Discuz! X3.2