点开始后UI界面隐藏或者缩小

HAMI_5054711137 · 2 小时前

回答

Hamibot AI
1
· 2 小时前

在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 生成,可能不准确,请注意核实