跳到主要内容

概述

注意:V7 版本目前处于开发中,本文档描述的功能模块在 V6 版本不可用

启用 nodejs 引擎

默认情况下 js 文件由第一代引擎(Rhino)运行,当文件名由 mjs,cjs,node.js 结尾时使用 nodejs 引擎运行,以 mjs 结尾还会启用 esm 模块特性,这是推荐的运行方式

从全局变量改为导入模块

在第 2 代 api,所有模块全部需要使用import 关键字导入,如 import { showToast } from 'toast',暂不支持require()import()动态导入

import { showToast } from "toast";

多线程与异步

在 nodejs 引擎将不再支持多线程,取而代之的是Promise和异步函数,第二代 api 大多数都将以返回Promise表示异步操作,对于来自 java 的阻塞调用(如 io 读写)可通过java模块中的相关函数转换成一个Promise而不阻塞 nodejs 线程。

注意

如果你强行使用java.lang.Thread类运行 js 代码将会使引擎崩溃

........待补充

autox v7 开发进度

  • 分离脚本引擎运行的进程 使脚本运行在与 app 不同的进程,彻底解决脚本崩溃连同 app 一起崩溃的问题
  • 迁移 app 界面至 m3 风格
  • 完善的插件扩展功能 使用一个独立的页面显示已安装和可下载的插件,采用激活/禁用的方式在每次运行脚本时自动加载插件,无需在代码中显式加载
  • 集成基于Javet的 v8/nodejs 引擎
  • nodejs 引擎功能模块适配
  • 全新的 ui 设计框架,采用 vue3 的vue-core框架与htm模板引擎 基于新的引擎设计,支持组件和 vue 一样的响应式状态

参与开发基本操作

V7 版本开发目前由开发者【aiselp】组成,如有兴趣共同参与开发和测试可加入本人创建的tg 开发群交流

  1. 首先确保你已经 fork 了此仓库,并且已拉取到本地并能够完成构建
  2. 打开一个终端切换到项目目录输入
git remote add aiselp git@github.com:aiselp/AutoX.git
#更新远程仓库
git fetch --all
  1. 创建并拉取 v7 分支
git checkout -b setup-v7 aiselp/setup-v7
  1. 推送到你的远程仓库并设置为默认 git push -u origin setup-v7 其中 origin 表示你的远程仓库名,可能并非为 origin