回答
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 生成,内容仅供参考