- 基于 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)与截图联调脚本
71 lines
1.4 KiB
HTML
71 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100vh;
|
|
margin: 0;
|
|
padding: 0;
|
|
font-family: Arial, sans-serif;
|
|
cursor: default;
|
|
}
|
|
|
|
.logo {
|
|
font-size: 32px;
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.letter {
|
|
opacity: 0;
|
|
color: lightgreen;
|
|
}
|
|
|
|
.fade-in-animation {
|
|
animation: fade-in 4s infinite;
|
|
}
|
|
|
|
@keyframes fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
color: lightgreen;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
color: lightblue;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="logo">
|
|
<span class="letter">O</span>
|
|
<span class="letter">p</span>
|
|
<span class="letter">e</span>
|
|
<span class="letter">n</span>
|
|
<span class="letter">I</span>
|
|
<span class="letter">M</span>
|
|
</div>
|
|
|
|
<script>
|
|
const letters = document.querySelectorAll(".letter");
|
|
|
|
function animateLetters() {
|
|
letters.forEach((letter, index) => {
|
|
setTimeout(() => {
|
|
letter.classList.add("fade-in-animation");
|
|
}, index * 300);
|
|
});
|
|
}
|
|
|
|
animateLetters();
|
|
</script>
|
|
</body>
|
|
</html>
|