回答
悬浮窗权限是 Hamibot 脚本实现界面 overlay、调试信息展示及交互功能的基础权限。开启该权限后,脚本可以绘制悬浮窗、显示控制台悬浮窗或制作护眼模式等覆盖层。
1. 权限作用
- 调试信息输出:使用
console.show()显示控制台悬浮窗,查看日志和中间结果。 - 自定义悬浮窗:使用
floaty.window()或floaty.rawWindow()创建自定义 UI 界面。 - 交互控制:设置悬浮窗是否可触摸、是否可调整大小和位置。
2. 如何开启权限
你需要在 Android 系统设置中为 Hamibot 应用授予“悬浮窗”或“显示在其他应用上层”的权限。一般路径如下:
- 打开手机的 设置。
- 进入 应用管理 或 应用列表。
- 找到 Hamibot 应用。
- 点击 权限管理 或 高级设置。
- 开启 悬浮窗 或 显示在其他应用上层 开关。
不同品牌手机路径可能略有差异,请在设置中搜索“悬浮窗”快速定位。
3. 代码示例
显示控制台悬浮窗
console.show() 需要悬浮窗权限。Hamibot 1.6.0 及以上版本在脚本结束时会自动隐藏悬浮窗。
// 文档地址 https://docs.hamibot.com/
console.show();
console.log("脚本已开始运行");
var count = 5;
console.log("当前计数:%d", count);
// 脚本结束后控制台会自动隐藏
创建原始悬浮窗
使用 floaty.rawWindow 创建自定义悬浮窗,并设置触摸和调整属性。
// 文档地址 https://docs.hamibot.com/
var w = floaty.rawWindow(
<frame gravity="center" bg="#44ffcc00" w="200" h="200">
<text id="msg" text="悬浮窗示例" textColor="#ffffff" gravity="center"/>
</frame>
);
// 设置悬浮窗大小
w.setSize(200, 200);
// 设置是否可触摸,false 表示点击事件穿透到下层
w.setTouchable(false);
// 设置是否允许调整大小和位置
w.setAdjustEnabled(true);
// 5 秒后关闭悬浮窗
setTimeout(function() {
w.close();
}, 5000);
4. 关键属性说明
- setTouchable(touchable):
true:悬浮窗接收触摸事件,事件不会传递到下层。false:悬浮窗不接收触摸事件,事件直接传递到下层(适用于护眼模式)。
- setAdjustEnabled(enabled):
true:显示调整标示,可拖动改变位置和大小。false:隐藏调整标示。
- 元素访问:可通过
window.{id}获取悬浮窗界面上的控件,例如w.msg获取上述示例中的 text 控件。
确保在脚本运行前已授予权限,否则 console.show() 或 floaty 相关方法可能无法正常工作或抛出异常。
ℹ️ 本回答由 AI 生成,内容仅供参考