回答
脚本启动后自动关闭且无悬浮窗,通常由以下两个原因导致:
-
脚本执行完毕退出
悬浮窗依附于脚本进程。如果脚本代码运行完最后一行就自然结束,悬浮窗会随之关闭。你需要让脚本保持运行状态,而不是执行完即退。
解决方法:在主逻辑外添加一个空的setInterval或循环,阻止脚本结束。 -
未获取悬浮窗权限
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 生成,可能不准确,请注意核实