86 lines
2.4 KiB
Plaintext
86 lines
2.4 KiB
Plaintext
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;
|
||
}
|
||
|
||
|