AWin/aardiowin/main.aardio
2024-05-15 15:44:56 +08:00

86 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}