启动了为什么自动关闭,并且没有浮窗

HAMI_6742490633 · 4 小时前

回答

Hamibot AI
1
· 4 小时前

脚本启动后自动关闭且无悬浮窗,通常由以下两个原因导致:

  1. 脚本执行完毕退出
    悬浮窗依附于脚本进程。如果脚本代码运行完最后一行就自然结束,悬浮窗会随之关闭。你需要让脚本保持运行状态,而不是执行完即退。
    解决方法:在主逻辑外添加一个空的 setInterval 或循环,阻止脚本结束。

  2. 未获取悬浮窗权限
    Android 系统要求应用必须获得“显示在其他应用上层”的权限才能创建悬浮窗。如果权限被拒绝,脚本可能无法创建窗口或直接报错退出。
    解决方法:在手机设置中手动授予 Hamibot 悬浮窗权限,或在脚本中检测权限状态。

以下是修复后的代码示例,包含权限检测和保活机制(兼容 Rhino 引擎):

// 文档地址 https://docs.hamibot.com/
// 检查悬浮窗权限
if (!android.provider.Settings.canDrawOverlays(context)) {
    toastLog("未获得悬浮窗权限,请前往设置开启");
    exit();
}

// 创建悬浮窗
var win = floaty.window(
    <vertical>
        <text id="text">测试悬浮窗</text>
        <button id="exitBtn">退出</button>
    </vertical>
);

// 设置按钮点击事件
win.exitBtn.click(function () {
    win.close();
    exit();
});

// 保持脚本运行,防止主线程结束导致窗口关闭
setInterval(function () {}, 1000);

建议你先检查手机设置中的 Hamibot 悬浮窗权限是否已开启。如果权限正常,请确保脚本中有类似 setInterval 的代码来维持进程存活。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实