更新记录
1.0.1(2026-01-05)
一、文档更新
1.0.0(2026-01-05)
一、首次提交
平台兼容性
uni-app(4.57)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
hl-autojs-uts
基于 AutoJs6 的脚本运行 UTS 插件,为 uni-app / uni-app x 应用提供完整的自动化脚本能力。
⚠️ 仅支持 Android 平台
功能特性
- ✅ 脚本执行 - 支持文件、项目、代码字符串三种方式
- ✅ 参数传递 - 向脚本传递 JSON 参数
- ✅ 权限管理 - 自动检测与引导授权(无障碍/悬浮窗/存储)
环境要求
| 项目 |
要求 |
| HBuilderX |
3.6.8+ |
| Android |
minSdkVersion 21 (Android 5.0+) |
| 权限 |
无障碍服务、悬浮窗、存储(Android 11+需要完全存储访问) |
快速开始
1. 导入与初始化
import { getHlAutojsClient } from '@/uni_modules/hl-autojs-uts'
const client = getHlAutojsClient()
// 注册状态回调
client.onUpdateCallback((res) => {
console.log('AutoJs 状态:', res.code, res.data)
})
2. 运行脚本
// 方式一:运行脚本文件
client.runScriptFile('/sdcard/autojs/demo.js', (res) => {
console.log(res.code === 1 ? '成功' : '失败', res.data)
})
API 文档
完整方法列表
初始化与生命周期
| 方法 |
说明 |
onUpdateCallback(cb) |
注册状态回调,接收初始化结果等通知 |
脚本执行
| 方法 |
说明 |
runScriptFile(path, cb) |
运行单个 JS 文件 |
脚本控制
| 方法 |
说明 |
stopCurrent() |
停止当前运行的脚本 |
restartLast(cb) |
重新运行最近执行的脚本 |
runStopAll() |
停止所有脚本(预留) |
权限管理
| 方法 |
说明 |
requestPermission(type, cb) |
请求指定类型权限,自动跳转设置页 |
状态码说明
| code |
含义 |
| 1 |
操作成功 |
| 0 |
操作失败 |
| 100 |
初始化成功 |
| 101 |
配置文件不存在 |
| 102 |
主脚本不存在 |
| 103 |
引擎服务未初始化 |
| 104 |
脚本执行异常 |
| 110 |
未初始化 |
| 111 |
路径为空 |
| 114 |
上下文不可用 |
| 115 |
依赖库缺失 |
权限配置
必需权限
应用需要以下 Android 权限:
- 无障碍服务 - 用于控件查找、点击等 UI 操作
- 悬浮窗权限 - 用于 floaty 悬浮窗功能
- 存储权限 - 用于读取脚本文件
检查与请求权限
// 检查环境权限
client.checkEnv((res) => {
const { accessibilityEnabled, overlayEnabled, storageGranted } = res.data
console.log('无障碍:', accessibilityEnabled)
console.log('悬浮窗:', overlayEnabled)
console.log('存储:', storageGranted)
})
// 请求特定权限(自动跳转设置页)
client.requestPermission('accessibility', (res) => {
console.log(res.data.msg)
})
// 获取所有权限状态
client.requestPermission('all', (res) => {
console.log('权限状态:', res.data)
})
使用示例
完整的脚本执行流程
import { getHlAutojsClient } from '@/uni_modules/hl-autojs-uts'
const client = getHlAutojsClient()
// 1. 注册回调
client.onUpdateCallback((res) => {
if (res.code === 100) {
console.log('初始化成功')
runMyScript()
}
})
// 2. 初始化
client.infinity()
// 3. 运行脚本
function runMyScript() {
const scriptPath = plus.io.convertLocalFileSystemURL('_www/static/scripts/main.js')
client.runScriptFile(scriptPath, (res) => {
if (res.code === 1) {
console.log('脚本启动成功')
} else {
console.error('启动失败:', res.data.msg)
}
})
}
// 4. 停止脚本
function stopScript() {
client.stopCurrent()
}
查询执行历史
client.getHistory((res) => {
const list = res.data.list || []
list.forEach(item => {
console.log(`${item.scriptName} - ${item.success ? '成功' : '失败'} - ${item.message}`)
})
})
注意事项
- 仅支持 Android - iOS 及其他平台不支持
- 需要权限 - 无障碍服务和悬浮窗权限必须手动授予
- 脚本路径 - 使用
plus.io.convertLocalFileSystemURL() 转换应用内路径
- 参数文件 -
runScriptFileWithParams 会在脚本目录创建 __autojs_params__.json
- 前台通知 - 保活服务会在通知栏显示,无法关闭