回答
在Hamibot中,点击“开始”按钮后隐藏或缩小UI界面,主要取决于你使用的是标准UI模式("ui";)还是悬浮窗模式(floaty)。以下是两种场景的完整实现方案:
场景一:标准UI模式(直接隐藏/关闭界面)
如果你的脚本以 "ui"; 开头,点击按钮后调用 ui.finish() 即可关闭UI界面,脚本会自动转入后台继续执行。
// 文档地址 https://docs.hamibot.com/
"ui";
ui.layout(
<vertical padding="16">
<button id="startBtn" text="开始运行" />
</vertical>
);
ui.startBtn.on("click", function() {
toast("任务已启动,UI界面将隐藏");
// 关闭UI界面,脚本继续在后台运行
ui.finish();
// 在此处编写你的自动化逻辑
// 例如:launchApp("微信");
});
场景二:悬浮窗模式(缩小或关闭)
如果你使用 floaty 创建悬浮窗,可以通过动态调整窗口尺寸实现“缩小”,或直接调用 close() 隐藏。
// 文档地址 https://docs.hamibot.com/
var myWindow = floaty.window(
<frame bg="#ffffff">
<button id="startBtn" text="开始" />
</frame>
);
// 悬浮窗的控件绑定需在UI线程执行
ui.run(function() {
myWindow.startBtn.on("click", function() {
toast("任务启动");
// 方式A:缩小悬浮窗(例如缩至 80x80)
myWindow.setSize(80, 80);
// 可选:移动到屏幕边缘避免遮挡
// myWindow.setPosition(0, 500);
// 方式B:直接关闭悬浮窗
// myWindow.close();
// 继续执行后台任务
});
});
// 保持脚本常驻,防止悬浮窗关闭后脚本退出
setInterval(function() {}, 1000);
关键说明
ui.finish()仅销毁UI Activity,不会中断脚本执行。你的自动化逻辑会无缝转入后台运行。floaty悬浮窗的setSize(width, height)可实时调整大小,配合setPosition(x, y)可实现类似“最小化到边缘”的效果。- 代码已严格适配 Hamibot 的 Rhino 1.7.15 引擎,未使用箭头函数或默认参数,可直接复制运行。
- 若隐藏UI后需要执行耗时任务,建议在脚本末尾保留
setInterval或使用events.waitFor()防止脚本被系统回收。
你可以根据实际使用的UI类型选择对应方案。如果布局结构较复杂或需要保留部分控件可见,可以提供你的UI代码,我会帮你针对性调整。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实