更新记录

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 权限:

  1. 无障碍服务 - 用于控件查找、点击等 UI 操作
  2. 悬浮窗权限 - 用于 floaty 悬浮窗功能
  3. 存储权限 - 用于读取脚本文件

检查与请求权限

// 检查环境权限
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}`)
    })
})

注意事项

  1. 仅支持 Android - iOS 及其他平台不支持
  2. 需要权限 - 无障碍服务和悬浮窗权限必须手动授予
  3. 脚本路径 - 使用 plus.io.convertLocalFileSystemURL() 转换应用内路径
  4. 参数文件 - runScriptFileWithParams 会在脚本目录创建 __autojs_params__.json
  5. 前台通知 - 保活服务会在通知栏显示,无法关闭

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。