自动发帖软件

标题: 苹果脚本和H5配置config小实例 [打印本页]

作者: 发帖软件    时间: 4 小时前
标题: 苹果脚本和H5配置config小实例
苹果脚本和H5配置config小实例




  1. /*
  2. 🍎 AIWROK 配置管理器 - H5 界面集成示例
  3. 🍎 交流 QQ 群 711841924 群一,苹果内测群 528816639
  4. 🍎 功能:通过 WebView 加载配置管理 H5 界面,实现可视化配置管理
  5. */

  6. printl("=== AIWROK 配置管理器H5 集成示例启动 ===");

  7. // 创建 WebView 加载配置管理界面
  8. printl("正在创建配置管理界面...");

  9. var web = new WebView();
  10. web.show(); // 显示 WebView

  11. // 从文件加载 H5 界面
  12. var htmlPath = project.getCodePath() + "h5.html";
  13. printl("H5 文件路径:" + htmlPath);
  14. web.loadFile(htmlPath);

  15. printl("✓ 配置管理界面已加载");

  16. // ============================================
  17. // H5 与 Native 桥接方法
  18. // ============================================

  19. printl("\n注册 H5 与 Native 交互方法...");

  20. // 设置配置(供 H5 调用)
  21. function setConfig(key, value) {
  22.     printl("[H5 调用] 设置配置:" + key + " = " + value);
  23.    
  24.     try {
  25.         config.setConfig("AIWROK_" + key, String(value));
  26.         printl("  ✓ 配置已保存");
  27.         return true;
  28.     } catch (e) {
  29.         printl("  ✗ 保存失败:" + e.message);
  30.         return false;
  31.     }
  32. }

  33. // 获取配置(供 H5 调用)
  34. function getConfig(key) {
  35.     var value = config.getConfig("AIWROK_" + key, "");
  36.     printl("[H5 调用] 获取配置:" + key + " = " + value);
  37.     return value;
  38. }

  39. // 批量保存配置(供 H5 调用)
  40. function batchSetConfigs(configsJson) {
  41.     printl("[H5 调用] 批量保存配置");
  42.    
  43.     try {
  44.         var configs = JSON.parse(configsJson);
  45.         for (var key in configs) {
  46.             config.setConfig("AIWROK_" + key, String(configs[key]));
  47.             printl("  ✓ " + key + " = " + configs[key]);
  48.         }
  49.         printl("✓ 批量保存完成");
  50.         return true;
  51.     } catch (e) {
  52.         printl("✗ 批量保存失败:" + e.message);
  53.         return false;
  54.     }
  55. }

  56. // 批量获取配置(供 H5 调用)
  57. function batchGetConfigs(keysJson) {
  58.     printl("[H5 调用] 批量获取配置");
  59.    
  60.     try {
  61.         var keys = JSON.parse(keysJson);
  62.         var result = {};
  63.         
  64.         for (var i = 0; i < keys.length; i++) {
  65.             var key = keys[i];
  66.             result[key] = config.getConfig("AIWROK_" + key, "");
  67.             printl("  ✓ " + key + " = " + result[key]);
  68.         }
  69.         
  70.         printl("✓ 批量获取完成");
  71.         return JSON.stringify(result);
  72.     } catch (e) {
  73.         printl("✗ 批量获取失败:" + e.message);
  74.         return "{}";
  75.     }
  76. }

  77. // 导出配置(供 H5 调用)
  78. function exportAllConfigs() {
  79.     printl("[H5 调用] 导出所有配置");
  80.    
  81.     var allKeys = [
  82.         "game_name", "task_delay", "max_rounds", "enable_combat", "auto_heal",
  83.         "ocr_language", "ocr_confidence", "ocr_timeout", "ocr_retry",
  84.         "ui_theme", "ui_font_size", "ui_show_toolbar", "ui_animation",
  85.         "network_base_url", "network_version", "network_timeout", "network_retries"
  86.     ];
  87.    
  88.     var result = {};
  89.     for (var i = 0; i < allKeys.length; i++) {
  90.         var key = allKeys[i];
  91.         result[key] = config.getConfig("AIWROK_" + key, "");
  92.     }
  93.    
  94.     var jsonStr = JSON.stringify(result, null, 2);
  95.     printl("✓ 配置已导出:\n" + jsonStr);
  96.     return jsonStr;
  97. }

  98. // 恢复默认配置(供 H5 调用)
  99. function resetToDefault(category) {
  100.     printl("[H5 调用] 恢复默认配置:" + category);
  101.    
  102.     var defaultConfigs = {};
  103.    
  104.     if (category === "game") {
  105.         defaultConfigs = {
  106.             "game_name": "梦幻西游",
  107.             "task_delay": "2000",
  108.             "max_rounds": "10",
  109.             "enable_combat": "true",
  110.             "auto_heal": "true"
  111.         };
  112.     } else if (category === "ocr") {
  113.         defaultConfigs = {
  114.             "ocr_language": "zh-CN",
  115.             "ocr_confidence": "80",
  116.             "ocr_timeout": "5000",
  117.             "ocr_retry": "3"
  118.         };
  119.     } else if (category === "ui") {
  120.         defaultConfigs = {
  121.             "ui_theme": "dark",
  122.             "ui_font_size": "16",
  123.             "ui_show_toolbar": "true",
  124.             "ui_animation": "true"
  125.         };
  126.     } else if (category === "network") {
  127.         defaultConfigs = {
  128.             "network_base_url": "https://api.example.com",
  129.             "network_version": "v2",
  130.             "network_timeout": "10000",
  131.             "network_retries": "3"
  132.         };
  133.     }
  134.    
  135.     for (var key in defaultConfigs) {
  136.         config.setConfig("AIWROK_" + key, defaultConfigs[key]);
  137.         printl("  ✓ 重置 " + key + " = " + defaultConfigs[key]);
  138.     }
  139.    
  140.     printl("✓ 配置已恢复默认");
  141.     return JSON.stringify(defaultConfigs);
  142. }

  143. // Toast 提示(供 H5 调用)
  144. function showToast(message) {
  145.     printl("[H5 调用] Toast: " + message);
  146.     toast(message);
  147. }

  148. // 日志输出(供 H5 调用)
  149. function addNativeLog(message, level) {
  150.     printl("[H5 日志][" + level + "] " + message);
  151. }

  152. printl("✓ H5 与 Native 交互方法已注册");

  153. // ============================================
  154. // 演示:自动加载和测试
  155. // ============================================

  156. _sleep(1000); // 等待 H5 完全加载

  157. printl("\n=== 配置管理器功能测试 ===");

  158. // 测试 1: 预设一些配置
  159. printl("\n[测试 1] 预设配置数据...");
  160. setConfig("game_name", "梦幻西游");
  161. setConfig("task_delay", "2000");
  162. setConfig("max_rounds", "10");
  163. setConfig("enable_combat", "true");
  164. setConfig("auto_heal", "true");

  165. setConfig("ocr_language", "zh-CN");
  166. setConfig("ocr_confidence", "80");
  167. setConfig("ocr_timeout", "5000");

  168. setConfig("ui_theme", "dark");
  169. setConfig("ui_font_size", "16");
  170. setConfig("ui_show_toolbar", "true");

  171. setConfig("network_base_url", "https://api.example.com");
  172. setConfig("network_version", "v2");
  173. setConfig("network_timeout", "10000");

  174. printl("✓ 预设配置完成");

  175. // 测试 2: 读取配置验证
  176. printl("\n[测试 2] 验证配置读取...");
  177. var gameName = getConfig("game_name");
  178. var taskDelay = getConfig("task_delay");
  179. var ocrLang = getConfig("ocr_language");
  180. var uiTheme = getConfig("ui_theme");

  181. printl("  游戏名称:" + gameName);
  182. printl("  任务延迟:" + taskDelay + "ms");
  183. printl("  OCR 语言:" + ocrLang);
  184. printl("  UI 主题:" + uiTheme);

  185. // 测试 3: 批量操作
  186. printl("\n[测试 3] 批量配置操作...");
  187. var testConfigs = {
  188.     "game_name": "测试游戏",
  189.     "task_delay": "3000",
  190.     "max_rounds": "20"
  191. };
  192. batchSetConfigs(JSON.stringify(testConfigs));

  193. var retrievedConfigs = batchGetConfigs(JSON.stringify(["game_name", "task_delay", "max_rounds"]));
  194. printl("  批量获取结果:" + retrievedConfigs);

  195. printl("\n=== 配置管理器H5 集成示例说明 ===");
  196. printl("✓ H5 界面已启动,可以在界面上进行可视化配置");
  197. printl("✓ 所有配置会自动保存到 config 系统");
  198. printl("✓ 支持分类管理:游戏配置、OCR 配置、UI 配置、网络配置");
  199. printl("✓ 支持导出导入配置(JSON 格式)");
  200. printl("✓ 支持一键恢复默认配置");
  201. printl("\n提示:关闭 WebView 后配置会自动保存");

  202. // ============================================
  203. // 保持脚本运行(可选)
  204. // ============================================

  205. // 如果需要保持脚本持续运行,可以取消下面的注释
  206. /*
  207. printl("\n脚本将持续运行,按需求使用 H5 界面进行配置管理...");
  208. while (true) {
  209.     sleep(1000);
  210. }
  211. */

  212. printl("\n=== 示例结束 ===");
复制代码







欢迎光临 自动发帖软件 (http://www.fatiegongju.com/) Powered by Discuz! X3.2