回答
在 Hamibot 中运行本地脚本,主要通过 engines.execScriptFile() 方法实现。该方法会在独立的脚本环境中加载并执行设备本地存储的 .js 文件。
基础用法
// 文档地址 https://docs.hamibot.com/
engines.execScriptFile('/storage/emulated/0/Scripts/myScript.js');
完整参数说明
path<String>:本地脚本文件的绝对路径。config<Object>(可选):运行配置,支持以下属性:loopTimes<Number>:循环运行次数,默认为 1。设为 0 表示无限循环。interval<Number>:循环运行时两次执行之间的间隔时间(毫秒),默认为 0。path<Array>|<String>:模块搜索路径,用于require()查找本地依赖文件。
示例:循环运行本地脚本
// 文档地址 https://docs.hamibot.com/
engines.execScriptFile('/storage/emulated/0/Scripts/task.js', {
loopTimes: 5,
interval: 2000
});
关键注意事项
- 路径与权限:必须使用绝对路径(如
/storage/emulated/0/...)。确保 Hamibot 已获取手机存储读取权限,否则会遇到文件找不到的报错。 - 引擎兼容性:Hamibot 底层使用 Rhino 1.7.15 引擎,不支持箭头函数、默认参数、解构赋值等 ES6+ 语法。编写本地脚本时请使用传统的
function声明和var/let。 - 控制执行状态:
execScriptFile会返回一个ScriptExecution对象。若需在其他脚本中停止该本地脚本的运行,可保存该对象并调用:// 文档地址 https://docs.hamibot.com/ var execution = engines.execScriptFile('/storage/emulated/0/Scripts/task.js'); // 需要停止时执行: execution.getEngine().forceStop(); - 调试与更新:本地脚本修改后,需重新触发执行才会加载最新代码。若需动态传参,可结合
engines.execScript()与Function.toString()将函数转为字符串执行,或通过全局变量/本地文件进行数据通信。
按上述方式即可稳定在本地运行脚本。若遇到路径报错或执行中断,提供具体的日志输出可进一步定位问题。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实