回答
文档地址 https://docs.hamibot.com/
Hamibot 脚本主要通过 JavaScript 编写,以下是基础编写方法:
- 基础结构
// 通过 engines 对象执行脚本
engines.execScript('示例脚本', `
toast('这是提示信息');
sleep(1000);
log('脚本开始运行');
`);
- 函数封装调用
function myFunction(msg) {
toast(msg);
}
// 执行函数时需要传递完整的函数定义
engines.execScript('函数调用', `
${myFunction.toString()}
myFunction("参数传递测试");
`);
- 带参数执行
function execScriptWithArgs(action, args) {
engines.execScript(
action.name,
`${action.toString()}\n${action.name}(${JSON.stringify(args)});`
);
}
execScriptWithArgs(
function add(a, b) {
toast("计算结果:" + (a + b));
},
{ a: 5, b: 3 }
);
- 界面自动化
// 使用控件操作实现点击
var btn = text("提交").findOne();
if (btn && btn.clickable()) {
btn.click();
}
// 滑动操作示例
scrollUp(); // 上滑最大可滚动区域
scrollDown(0); // 下滑第一个可滚动区域
- 完整功能示例(关闭应用)
function closeApp(appName) {
var packageName = getPackageName(appName);
if (!packageName) {
if (getAppName(appName)) {
packageName = appName;
} else {
return false;
}
}
app.openAppSetting(packageName);
textMatches(/(.*强制.*|.*停止.*|.*结束.*)/).findOne().parent().click();
textMatches(/(.*确定.*|.*确认.*)/).findOne().click();
log(`${packageName} 已关闭`);
}
// 调用示例
closeApp("微信");
注意事项:
- 所有脚本必须包含有效 UI 操作或逻辑处理
- 需要无障碍服务权限支持(设置-无障碍服务-Hamibot 开关)
- 布局分析工具可通过悬浮窗获取控件 bounds 属性
- JavaScript 版本兼容 Rhino 1.7.15 引擎特性
ℹ️ 本回答由 AI 生成,内容仅供参考