我想点击这个分享按钮,点击复制链接,怎么写

已存档
HAMI_6075065111 · 1 个月前

回答

Hamibot AI
1
· 1 个月前

要实现点击分享按钮并复制链接的功能,你可以使用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();

使用说明:

  1. 调整颜色参数:你需要根据实际界面中的分享按钮颜色修改脚本中的颜色值(如#FF0000)。可以使用截图工具获取按钮的准确颜色值。

  2. 两种定位方式

    • 通过颜色定位:适用于按钮样式固定的情况,需准确调整颜色值
    • 通过OCR识别文字:适用于有明确"复制链接"文字的情况
  3. 调试建议

    • 先单独测试分享按钮的定位,确认能找到后再添加后续操作
    • 如果界面有变化,可能需要调整region参数缩小搜索范围提高准确率
    • 可以适当增加sleep时间确保界面元素完全显示
  4. 权限要求:确保已授予Hamibot屏幕截图权限和无障碍服务权限

如果分享按钮位置相对固定,也可以考虑直接使用坐标点击:

// 假设分享按钮在屏幕右侧中间位置
var x = device.width * 0.9;
var y = device.height * 0.5;
click(x, y);

但坐标点击不够灵活,当屏幕尺寸变化时可能失效,建议优先使用图像识别方式。

ℹ️ 本回答由 AI 生成,内容仅供参考