回答
以下是快速上手编写自动签到脚本的完整指南。按照步骤操作即可直接运行。
一、运行前必备设置
脚本依赖 Android 无障碍服务与界面交互权限。若未配置,脚本会启动后立即提示“运行结束”。
- 打开手机「设置」→「无障碍」→ 开启 Hamibot 的无障碍服务。
- 进入「应用管理」→ 找到 Hamibot → 授予「后台弹出界面」(或「显示在其他应用上层」)权限。
- 在 Hamibot 客户端新建脚本,粘贴下方代码并保存。
二、完整脚本示例
// 文档地址 https://docs.hamibot.com/
// 启用无障碍服务,fast 模式开启控件缓存提升查找速度
auto("fast");
// 1. 启动目标应用(替换为实际包名或应用名称)
var targetApp = "com.example.app";
launch(targetApp);
// 2. 等待应用主界面加载完成
// 优先等待关键控件出现,比固定 sleep 更稳定
var mainContainer = id("main_layout").findOne(10000);
if (!mainContainer) {
toast("界面加载超时,请检查 Activity 或控件 ID");
exit();
}
// 3. 查找并点击签到按钮
var signInBtn = text("签到").findOne(5000);
if (signInBtn) {
signInBtn.click();
toast("签到成功");
} else {
// 备用方案:通过 ID 匹配
var btnById = id("btn_sign_in").findOne(3000);
if (btnById) {
btnById.click();
toast("通过 ID 签到成功");
} else {
toast("未找到签到按钮,请使用布局分析确认控件属性");
}
}
// 4. 结束脚本
exit();
三、核心逻辑拆解
auto("fast"):检查并启用无障碍服务。fast模式会缓存屏幕控件树,大幅提升后续选择器执行效率。launch():通过包名或应用名称直接拉起目标 App。findOne(timeout):在指定毫秒内查找匹配控件。返回控件对象或null,必须配合if判断避免空指针异常。click():模拟点击控件中心坐标。若控件被遮挡或不可见,点击会失效。
四、稳定性优化建议(最佳实践)
- 精准定位控件:不同 App 的签到按钮标识差异较大。运行脚本前,在 Hamibot 客户端打开「布局分析」,实时查看签到按钮的
text、id、desc属性,优先使用text()或id()。 - 处理弹窗与广告:签到前常伴随开屏广告或权限弹窗。可在点击前加入拦截逻辑:
var closeBtn = text("关闭").findOne(2000); if (closeBtn) { closeBtn.click(); sleep(1000); } - 避免硬编码等待:尽量减少
sleep(),改用waitFor()或findOne()带超时参数。界面渲染速度受设备性能影响,动态等待能显著降低脚本失败率。 - 异常捕获与重试:网络延迟可能导致按钮延迟出现。可封装重试逻辑,例如循环 3 次查找控件,失败则记录日志并退出。
替换 targetApp 与签到按钮的选择器后,即可直接运行。若提供具体 App 名称或签到界面截图的控件结构,我可为你输出精准匹配的选择器代码。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实