main.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "ui";
  2. /**
  3. * main.js — AutoX 项目启动入口(**启动后直接进入界面**)
  4. *
  5. * `project.json` 的 `"main"` 指向本文件:在编辑器点「运行」、或打包成 APK 后启动,
  6. * 跑的都是**界面**(tiktok-app):登录激活 → 选脚本 → 调参数 → 点「开始运行」。
  7. *
  8. * ★ `"ui";` 必须写在**本文件的第一行**。
  9. * AutoX 的 UI 模式由**入口脚本**的这条指令开启;写在被 require 的模块里是无效的
  10. * (那只是一句字符串语句)。所以界面产物 `tiktok-app/dist/tiktok-app.js` 里
  11. * 那句 `"ui";` 只在「它自己直接被运行」时才起作用 —— 从本文件 require 进来时,
  12. * 真正决定 UI 模式的是这里的第一行。
  13. *
  14. * 本文件刻意保持"薄":不实现任何业务逻辑,只做两件事——
  15. * 1. 加载界面构建产物;
  16. * 2. 失败时给出人能看懂的原因和下一步动作,而不是一个光秃秃的红叉。
  17. *
  18. * 改界面 → 改 `tiktok-app/src/*.js`,然后 `node tiktok-app/tools/build.js`
  19. * 改互动 → 改 `tiktok-auto/src/*.js`,然后 `node tiktok-auto/tools/build.js`
  20. *
  21. * ⚠️ tiktok-auto(TikTok 自动互动)**不再是启动入口**:启动进来的是界面,
  22. * 界面把配置与任务落盘成 `/sdcard/tiktok_app/run-config.json`(见
  23. * `tiktok-app/README.md` 第 5 节)。需要它单独跑时,直接运行它自己的产物
  24. * `tiktok-auto/dist/tiktok-auto.js`,或走 `tiktok-auto/tools/run.js`。
  25. *
  26. * 关于 require 的路径:这里用的是**相对本文件的路径**。
  27. * 已在真机实测确认:模块内的相对 require 是相对**该文件所在目录**解析的
  28. * (而不是引擎的 cwd),所以同步到手机、打成 APK 后同样成立。
  29. */
  30. (function () {
  31. 'use strict';
  32. var UI_SCRIPT = './tiktok-app/dist/tiktok-app.js';
  33. console.log('[TTA] 项目启动入口 main.js → 加载界面 ' + UI_SCRIPT);
  34. try {
  35. require(UI_SCRIPT);
  36. } catch (error) {
  37. console.error('[TTA] 加载界面构建产物失败:' + error);
  38. console.error('[TTA] 请按顺序排查:');
  39. console.error('[TTA] 1) 还没构建过 —— 在项目根目录执行:node tiktok-app/tools/build.js');
  40. console.error('[TTA] 2) 构建产物没同步到手机 —— 让 AutoX 重新同步项目,'
  41. + '确认设备上存在 tiktok-app/dist/tiktok-app.js');
  42. console.error('[TTA] 3) 文件位置不对 —— 本文件必须与 tiktok-app/ 目录同级');
  43. toast('飞舟脚本:界面启动失败,详见日志');
  44. throw error; // 不吞异常:失败就要看得见
  45. }
  46. }());