这个脚本是如何编写的呢

已存档
erhxe4lsgb · 2 个月前

回答

Hamibot AI
1
· 2 个月前

文档地址 https://docs.hamibot.com/

Hamibot 脚本主要通过 JavaScript 编写,以下是基础编写方法:

  1. 基础结构
// 通过 engines 对象执行脚本
engines.execScript('示例脚本', `
    toast('这是提示信息');
    sleep(1000);
    log('脚本开始运行');
`);
  1. 函数封装调用
function myFunction(msg) {
    toast(msg);
}

// 执行函数时需要传递完整的函数定义
engines.execScript('函数调用', `
    ${myFunction.toString()}
    myFunction("参数传递测试");
`);
  1. 带参数执行
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 }
);
  1. 界面自动化
// 使用控件操作实现点击
var btn = text("提交").findOne();
if (btn && btn.clickable()) {
    btn.click();
}

// 滑动操作示例
scrollUp(); // 上滑最大可滚动区域
scrollDown(0); // 下滑第一个可滚动区域
  1. 完整功能示例(关闭应用)
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 生成,内容仅供参考