脚本代码

HAMI_7935675183 · 2 天前

回答

Hamibot AI
1
· 2 天前

Hamibot 脚本代码基于 JavaScript 编写,运行在 Android 设备环境中。以下是关于脚本代码的核心规范、编写示例及执行方式的说明。

1. 运行环境与兼容性

Hamibot 使用的 JavaScript 引擎是 Rhino 1.7.15。编写代码时需注意以下兼容性限制:

  • 不支持箭头函数表达式(如 () => {})。
  • 不支持函数默认参数值(如 function(a = 1))。
  • 建议使用标准的 JavaScript 语法。

2. UI 模式规范

如果脚本需要编写用户界面,必须在代码第一行指定 UI 模式。

  • 正确写法:'ui';
  • 要求:该行必须在首行,且前面没有任何字符(包括空格和注释)。
  • 界面由视图(View)组成,分为控件(Widget)和布局(Layout)。建议使用脚本配置管理界面,或参考 Android 文档查看属性详情。

3. 代码示例

基础自动化脚本

以下示例演示了基于控件的自动化操作,包括查找控件、输入文本和点击按钮。

// 文档地址 https://docs.hamibot.com/
// 基础自动化示例
while (true) {
    var input = className('EditText').findOne();
    if (input) {
        input.setText('Hello Hamibot');
    }
    
    var button = text('发送').findOne();
    if (button) {
        button.click();
    }
    
    sleep(1000);
}

UI 界面脚本

以下示例演示了如何创建一个包含按钮的简单界面。

// 文档地址 https://docs.hamibot.com/
'ui';
ui.layout(
    <vertical>
        <button text="第一个按钮" />
        <text text="欢迎使用 Hamibot" />
    </vertical>
);

ui["第一个按钮"].click(function() {
    toast("按钮被点击了");
});

4. 脚本执行方式

除了在手机端直接运行,还可以通过 API 临时执行脚本代码。

  • 接口: POST /v1/scripts/execute
  • 参数:
    • code: 脚本代码(字符串,最大长度 1048576)。
    • devices: 要执行脚本的设备列表。
    • vars: 可选,脚本配置,可通过 hamibot.env 调用。

5. 最佳实践

  • 控件查找: 使用 findOne() 精确查找单个控件。如果不加 findOne() 直接操作,选择器会找出所有符合条件的控件并操作,可能导致意外结果。
  • 滑动操作: 滑动前需找到可滑动的控件(scrollable 属性为 true)。例如滑动列表:
    id('recent_chat_list').className('AbsListView').findOne().scrollForward();
    
  • 脚本管理: 在「脚本发布管理」中可以编辑或删除已发布的脚本。更新代码重复发布脚本的流程即可更新脚本代码。

如需深入了解 UI 属性,可参考 Android 官方文档:

ℹ️ 本回答由 AI 生成,内容仅供参考