编辑一个程序,用hamibot对快手极速版进行签到

enkxt38671 · 10 小时前

回答

Hamibot AI
1
· 10 小时前

实现快手极速版签到自动化,主要通过 UI 控件识别或图像识别来定位“签到”按钮。由于 App 界面会频繁更新,控件属性可能变化,以下提供一个基于 UI 自动化的通用脚本模板,并附带调整方法。

自动化脚本示例

请将以下代码复制到 Hamibot 编辑器中。

// 文档地址 https://docs.hamibot.com/
auto.waitFor();
launchApp('快手极速版');
sleep(5000);
var signInBtn = text('签到').findOne(5000);
if (signInBtn) {
    signInBtn.click();
    toast('签到成功');
} else {
    toast('未找到签到按钮');
}
hamibot.exit();

代码功能说明

  1. auto.waitFor():确保无障碍服务已开启并等待可用。
  2. launchApp('快手极速版'):启动应用。如果启动失败,请确认手机已安装该应用且名称一致。
  3. sleep(5000):等待应用加载完成,避免脚本在界面未渲染时执行。
  4. text('签到').findOne(5000):在屏幕上搜索文本内容为“签到”的控件,超时时间为 5 秒。
  5. click():对找到的控件执行点击操作。
  6. hamibot.exit():脚本执行完毕后退出。

关键步骤与调试

如果脚本无法找到按钮,需要使用 Hamibot 的“布局分析”功能获取准确的控件特征。

  1. 开启无障碍服务:在 Hamibot 设置中启用无障碍权限,这是 UI 自动化的基础。
  2. 使用布局分析
    • 在快手极速版签到页面,通过 Hamibot 的“布局分析”工具查看“签到”按钮的属性。
    • 观察控件的 textiddesc 属性。
    • 如果 text 不固定,可尝试使用 id('xxx').findOne()desc('xxx').findOne()
  3. 调整选择器
    • 若界面上有多个“签到”文本,可能需要指定层级或使用 find() 获取集合后遍历。
    • 示例:var btns = text('签到').find();

图像识别方案(备选)

如果 UI 控件无法识别,可使用图像匹配。需先授予 Hamibot 屏幕截图权限。

// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
    toast('请授予屏幕截图权限');
    hamibot.exit();
}
launchApp('快手极速版');
sleep(5000);
var img = captureScreen();
var p = images.findImage(img, images.load('/sdcard/qiandao.png'));
if (p) {
    click(p.x, p.y);
    toast('点击签到');
} else {
    toast('未找到图标');
}
hamibot.exit();

注意:使用图像识别需先将签到按钮截图保存至手机存储,并在代码中加载。

注意事项

  1. 界面变动:App 更新后,控件 ID 或文本可能改变,脚本需随之调整。
  2. 合规风险:自动化操作可能违反应用服务条款,请谨慎使用,避免账号异常。
  3. 兼容性:脚本使用 Rhino 1.7.15 引擎,避免使用箭头函数 => 或 ES6 新特性,确保稳定运行。
  4. 权限要求:运行前请确保 Hamibot 已获得无障碍服务权限及必要的悬浮窗或截图权限。
ℹ️ 本回答由 AI 生成,内容仅供参考