import win.ui; /* 载入配置,配置文件读取顺序,后读的可以覆盖先读的值。 1. 读取当前路径下的 config.json 2. 读取 %APPDATA%/%app% 路径下的 config.json。其中 %APPDATA% 为操作系统提供的当前用户软件目录。 %app% 为当前路径下的 config.json 中配置的 app */ gConfig = {} // 使用示例 try { gConfig = loadConfigs() console.log(configs); } catch (e) { console.error(e.message); } /*DSG{{*/ mainForm = win.form(text="awin";right=759;bottom=469) mainForm.add() /*}}*/ import web.view; var theView = web.view(mainForm); //导出为 JavaScript 中的 aardio 对象 theView.external = { onCounterUpdate = function(name,value){ if(name!==null && value!==null){ return "aardio 返回的值:网页中 React 状态值改变了:value:"+value; } }; } import wsock.tcp.simpleHttpServer; /* 如果导入 simpleHttpServer,则单个斜杠开头的路径会转换为嵌入式 HTTP 地址, 如果同时文件名为 index.html ,则上级目录自动设为根目录,前端应用发布根目录使用默认的 "/" 即可,不需要改动。 去掉下面的前端项目调试端口号 37151 或发布 EXE 后运行才会打开 "\web\index.html"。 否则打开 http://localhost:37151 */ theView.go("\web\index.html",37151); mainForm.show(); win.loopMessage(); // 配置载入函数 function loadConfigs() { var configs = {}; var currentPath = file.dir(); var appDataPath = env.get("APPDATA"); // 读取当前路径下的 config.json var currentConfigPath = file.path(currentPath, "config.json"); if (file.exists(currentConfigPath)) { var currentConfigContent = file.read(currentConfigPath); configs = json.parse(currentConfigContent); } // 从当前路径下的 config.json 中读取 app 值 var appValue = configs.app; if (!appValue) { error("'app' value not found in the config file."); } // 构建 %APPDATA%/%app% 路径 var appDataConfigPath = file.path(appDataPath, appValue, "config.json"); // 读取 %APPDATA%/%app% 路径下的 config.json if (file.exists(appDataConfigPath)) { var appDataConfigContent = file.read(appDataConfigPath); var appDataConfig = json.parse(appDataConfigContent); // 合并配置,后读取的覆盖先读取的 object.merge(configs, appDataConfig, true); } return configs; }