回答
要实现点击分享按钮并复制链接的功能,你可以使用Hamibot的图像识别和点击操作来完成。这里提供一个完整的脚本示例:
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
toastLog('没有授予 Hamibot 屏幕截图权限');
hamibot.exit();
}
// 等待界面稳定
sleep(1000);
// 截取当前屏幕
var screen = captureScreen();
// 查找分享按钮 (你需要根据实际按钮颜色调整下面的参数)
// 第一个参数是目标颜色,后面的数组是相对坐标和颜色的偏移
var shareButton = images.findMultiColors(
screen,
'#FF0000', // 替换为分享按钮的主要颜色
[
[10, 0, '#FF0000'], // 右侧10像素处的颜色
[0, 10, '#FF0000'], // 下方10像素处的颜色
],
{
region: [0, 0, device.width, device.height * 0.8] // 搜索区域,排除底部导航栏
}
);
if (shareButton) {
toastLog('找到分享按钮');
click(shareButton.x, shareButton.y);
sleep(800); // 等待分享菜单弹出
// 截取新屏幕,查找"复制链接"选项
var newScreen = captureScreen();
// 方案1:通过文字识别查找"复制链接"
var res = ocr.recognizeText(newScreen);
for (var i = 0; i < res; i++) {
if (res[i].text.includes('复制链接') || res[i].text.includes('Copy Link')) {
toastLog('找到复制链接选项: ' + res[i].text);
click(res[i].bounds.centerX(), res[i].bounds.centerY());
toastLog('已点击复制链接');
break;
}
}
// 方案2:如果文字识别不稳定,可以尝试通过颜色定位(需要调整颜色值)
/*
var copyLink = images.findMultiColors(
newScreen,
'#333333',
[
[15, 0, '#333333'],
[0, 15, '#333333']
]
);
if (copyLink) {
click(copyLink.x, copyLink.y);
toastLog('已点击复制链接');
}
*/
} else {
toastLog('未找到分享按钮');
}
hamibot.exit();
使用说明:
-
调整颜色参数:你需要根据实际界面中的分享按钮颜色修改脚本中的颜色值(如
#FF0000)。可以使用截图工具获取按钮的准确颜色值。 -
两种定位方式:
- 通过颜色定位:适用于按钮样式固定的情况,需准确调整颜色值
- 通过OCR识别文字:适用于有明确"复制链接"文字的情况
-
调试建议:
- 先单独测试分享按钮的定位,确认能找到后再添加后续操作
- 如果界面有变化,可能需要调整region参数缩小搜索范围提高准确率
- 可以适当增加sleep时间确保界面元素完全显示
-
权限要求:确保已授予Hamibot屏幕截图权限和无障碍服务权限
如果分享按钮位置相对固定,也可以考虑直接使用坐标点击:
// 假设分享按钮在屏幕右侧中间位置
var x = device.width * 0.9;
var y = device.height * 0.5;
click(x, y);
但坐标点击不够灵活,当屏幕尺寸变化时可能失效,建议优先使用图像识别方式。
ℹ️ 本回答由 AI 生成,内容仅供参考

