首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Electron 与 OpenHarmony 的实战入门:实时时间显示器

Electron 与 OpenHarmony 的实战入门:实时时间显示器

作者头像
@VON
发布2025-12-21 12:34:15
发布2025-12-21 12:34:15
640
举报
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Electron 与 OpenHarmony 的实战入门:实时时间显示器

作者:VON HarmonyOS 初级开发者|CSDN 新星创作者(Java/Web 领域) 专栏链接:Electron for OpenHarmony


在跨端开发的浪潮中,“一次编写,多端运行” 不再是口号,而是可落地的实践。本文将带你从零构建一个极简但极具代表性的应用 —— 实时时间显示器,它虽无复杂逻辑,却完美体现了 Web 技术在 Electron 与 OpenHarmony 之间的无缝迁移能力

这个项目无需文件操作、无需系统权限、不依赖 Node.js,仅用标准 HTML/CSS/JavaScript 实现,是验证“纯 Web 应用”跨平台兼容性的理想起点。


一、为什么选择“实时时间显示器”?

  • 零依赖:不使用任何 npm 包或 Node.js 模块
  • 纯前端逻辑:完全基于浏览器 API(Date, setInterval
  • 轻量高效:代码不足 30 行,5 分钟即可完成
  • 天然兼容 OpenHarmony:可直接嵌入鸿蒙 Web 组件
  • 教学价值高:展示“无主进程干预”的典型场景

💡 这类应用特别适合迁移到 OpenHarmony 的 PC 或智慧屏设备,作为系统状态栏插件、桌面小组件或信息看板。


二、项目结构

代码语言:javascript
复制
time-display/
├── main.js
├── index.html
└── package.json

⚠️ 注意:本项目不需要 preload.js,因为不涉及主进程通信。


三、完整代码实现

1. 初始化项目
代码语言:javascript
复制
mkdir time-display && cd time-display
npm init -y
npm install electron --save-dev
2. package.json
代码语言:javascript
复制
{
  "name": "time-display",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^33.0.0"
  }
}
3. main.js —— 最简主进程
代码语言:javascript
复制
const { app, BrowserWindow } = require('electron');

function createWindow() {
  const win = new BrowserWindow({
    width: 400,
    height: 200,
    resizable: false,
    alwaysOnTop: true,
    webPreferences: {
      nodeIntegration: false,
      contextIsolation: true
    }
  });
  win.loadFile('index.html');
}

app.whenReady().then(createWindow);
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit();
});

🔒 虽然不调用 Node,但仍建议保持安全配置(nodeIntegration: false)。

4. index.html —— 核心逻辑(纯 Web)
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <title>实时时间</title>
  <style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      margin: 0;
      background: #0f0f0f;
      color: #00ff88;
      font-family: 'Courier New', monospace;
      font-size: 28px;
      user-select: none;
    }
  </style>
</head>
<body>
  <div id="clock">--:--:--</div>

  <script>
    function updateTime() {
      const now = new Date();
      const timeString = now.toLocaleTimeString('zh-CN', {
        hour12: false,
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit'
      });
      document.getElementById('clock').textContent = timeString;
    }

    // 立即更新 + 每秒刷新
    updateTime();
    setInterval(updateTime, 1000);
  </script>
</body>
</html>

✨ 特性:

  • 使用 toLocaleTimeString 支持中文环境;
  • 绿色终端风格配色,科技感十足;
  • 禁用文本选择,提升体验。

四、运行效果

代码语言:javascript
复制
npm start

你将看到一个始终置顶的小窗口,每秒更新当前时间:

在这里插入图片描述
在这里插入图片描述

🖥️ 可作为开发时的辅助工具,也可扩展为倒计时、世界时钟等。


五、向 OpenHarmony 迁移(零成本!)

在这里插入图片描述
在这里插入图片描述

真机测试

在这里插入图片描述
在这里插入图片描述

六、扩展建议

  • 添加日期显示(如 2025-11-27
  • 支持切换 12/24 小时制
  • 增加城市时区选择(需调用系统 API,此时需引入 preload
  • 打包为独立桌面挂件(Electron + auto-launch)

七、结语:小应用,大意义

“实时时间显示器”看似简单,却是 Web 跨平台能力的最佳证明。它告诉我们:

只要坚持使用标准 Web 技术,你的应用就天然具备走向 Electron、OpenHarmony、甚至浏览器的能力。

在鸿蒙生态日益成熟的今天,掌握这种“一次开发,多端部署”的思维,比学会某个框架更重要。

时间在流逝,而你的代码,正在跨越平台。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Electron 与 OpenHarmony 的实战入门:实时时间显示器
    • 一、为什么选择“实时时间显示器”?
    • 二、项目结构
    • 三、完整代码实现
      • 1. 初始化项目
      • 2. package.json
      • 3. main.js —— 最简主进程
      • 4. index.html —— 核心逻辑(纯 Web)
    • 四、运行效果
    • 五、向 OpenHarmony 迁移(零成本!)
    • 六、扩展建议
    • 七、结语:小应用,大意义
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档