- 基于 openim-electron-demo 改造:工号+密码登录(自研账号服务)、会话列表/聊天窗/通讯录界面重做
- 文字/语音/文件/图片消息、文件拖拽发送、表情面板、一对一语音通话(LiveKit)
- RTC 令牌对接账号服务带鉴权版 /api/rtc_token(Bearer imToken + {room,identity})
- account-service: CORS Allow-Headers 补 authorization(浏览器/渲染进程跨域调 rtc_token 需要)
- 附本地 mock 账号服务(scripts/mock-account-server.js)与截图联调脚本
29 lines
801 B
TypeScript
29 lines
801 B
TypeScript
import { app } from "electron";
|
|
import { join } from "node:path";
|
|
import { createMainWindow } from "./windowManage";
|
|
import { createTray } from "./trayManage";
|
|
import { setIpcMainListener } from "./ipcHandlerManage";
|
|
import { setAppGlobalData, setAppListener, setSingleInstance } from "./appManage";
|
|
import createAppMenu from "./menuManage";
|
|
import { isLinux } from "../utils";
|
|
import { getLogger } from "../utils/log";
|
|
import { initI18n } from "../i18n";
|
|
|
|
export const logger = getLogger(join(app.getPath("userData"), `/OpenIMData/logs`));
|
|
|
|
const init = () => {
|
|
initI18n();
|
|
createMainWindow();
|
|
createAppMenu();
|
|
createTray();
|
|
};
|
|
|
|
setAppGlobalData();
|
|
setIpcMainListener();
|
|
setSingleInstance();
|
|
setAppListener(init);
|
|
|
|
app.whenReady().then(() => {
|
|
isLinux ? setTimeout(init, 300) : init();
|
|
});
|