工厂弄个网站做外贸如何处理山西省住房城乡建设厅网站首页
工厂弄个网站做外贸如何处理,山西省住房城乡建设厅网站首页,有哪些网站做二手房好的,注册劳务公司需要什么条件多少钱Step 2#xff1a;创建预览页面#xff08;preview.html#xff09; 引言
随着华为鸿蒙系统#xff08;HarmonyOS#xff09;的快速发展#xff0c;越来越多开发者开始关注其在多设备协同、分布式能力上的创新。与此同时#xff0c;Electron 作为构建跨平台桌面应用的主…Step 2创建预览页面preview.html引言随着华为鸿蒙系统HarmonyOS的快速发展越来越多开发者开始关注其在多设备协同、分布式能力上的创新。与此同时Electron作为构建跨平台桌面应用的主流框架凭借 Web 技术栈HTML CSS JS的优势深受前端开发者喜爱。那么问题来了能否将 Electron 的开发模式与鸿蒙系统的生态进行结合虽然目前鸿蒙原生不支持直接运行 Electron 应用但我们可以从“思想融合”和“技术互补”的角度出发探索一种类 Electron 架构在鸿蒙中的实现方式为未来桌面级鸿蒙应用开发提供新思路。本文将带你理解 Electron 的核心架构分析鸿蒙系统的能力边界实现一个“类 Electron”的鸿蒙桌面应用原型提供完整可运行的代码示例✅ 文末附 GitHub 源码地址 一、Electron 是什么Electron 是由 GitHub 开发的开源框架允许使用 Web 技术HTML、CSS、JavaScript构建跨平台桌面应用程序Windows、macOS、Linux。核心架构主进程 渲染进程进程类型职责主进程创建窗口、管理生命周期、调用系统 API渲染进程显示网页内容Chromium 渲染https://img-blog.csdnimg.cn/20210712153438895.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTQ1ODIy,size_16,color_FFFFFF,t_70图Electron 架构示意图来源Electron 官网 二、鸿蒙系统能做类似的事情吗鸿蒙系统HarmonyOS基于微内核设计支持一次开发、多端部署。其核心组件包括Ability应用的功能单元类似 ActivityUI 框架支持 Java/Kotlin、JS/eTS增强 TypeScriptWeb 组件可嵌入网页内容类似 WebViewWorker 多线程机制用于后台任务处理虽然鸿蒙不能直接运行 Electron 应用因为没有 Chromium Node.js 环境但我们可以通过以下方式模拟 Electron 的部分功能✅ 使用Web组件加载本地 HTML 页面✅ 使用Worker模拟主进程逻辑✅ 利用 eTS ArkUI 构建现代化界面这实际上就是构建一个“鸿蒙版的 Electron-like 桌面应用框架”。 三、实战打造一个“鸿蒙版 Electron”应用我们来做一个简单的桌面应用本地 Markdown 编辑器支持实时预览。功能需求左侧输入 Markdown 文本右侧实时渲染 HTML 预览支持文件保存模拟主进程操作️ 开发环境准备DevEco Studio 4.0华为官方 IDEHarmonyOS SDK 4.0项目语言eTSArkTS设备类型TV 或 Large Screen模拟桌面 项目结构MyElectronLikeApp/ ├── entry/src/main/ets/ │ ├── MainAbility/ │ │ └── MainAbility.ts │ ├── pages/ │ │ └── Index.ets # 主页面 │ ├── workers/ │ │ └── fileWorker.ts # 模拟主进程文件操作 │ └── web/ │ └── preview.html # 渲染预览页面 └── resources/ Step 1创建主页面Index.ets// Index.ets Entry Component struct Index { State markdownText: string # Hello 鸿蒙\n\n这是使用 Web 组件渲染的 Markdown 预览。 build() { Row() { // 左侧编辑区 TextEditor({ text: $markdownText }) .layoutWeight(1) .margin({ left: 20, top: 40 }) .placeholder(请输入 Markdown...) .onChange((value: string) { this.markdownText value; }) // 右侧预览区Web 组件 Web({ src: $rawfile(preview.html), controller: new WebController() }) .javaScriptAccessEnabled(true) .domStorageAccessEnabled(true) .layoutWeight(1) .onPageFinish((event) { // 页面加载完成后发送初始内容 event.controller?.runJavaScript({ script: updatePreview(\${this.markdownText}\) }); }) .onMessageEvent((event) { // 接收来自 Web 的消息 console.info(收到消息:, event.data); }) } .height(100%) .backgroundColor(Color.White) } }Step 2创建预览页面preview.html!-- web/preview.html --!DOCTYPE htmlhtml langzhheadmeta charsetUTF-8 /titleMarkdown 预览/titlescript srchttps://cdn.jsdelivr.net/npm/marked/marked.min.js/scriptstylebody { font-family: Arial, sans-serif; padding: 20px; background: #f5f5f5; }#preview { height: 100vh; overflow-y: auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }/style/headbodydiv idpreview/divscriptfunction updatePreview(md) {document.getElementById(preview).innerHTML marked.parse(md);}// 监听来自鸿蒙的消息通过 evaluateJavaScriptwindow.updatePreview updatePreview;/script/body/htmlStep 3模拟“主进程”——文件保存Worker创建workers/fileWorker.ts模拟主进程执行文件操作// workers/fileWorker.ts const workerPort globalThis.workerPort; workerPort.onmessage function (event: MessageEvent) { const { type, data } event.data; if (type saveFile) { // 模拟文件保存逻辑实际需调用 OHOS 文件系统 API console.log(正在保存文件:, data.content); // 延迟返回结果模拟异步 setTimeout(() { workerPort.postMessage({ type: saveResult, success: true, message: 文件已保存到 Documents/markdown_note.md }); }, 500); } };在Index.ets中调用 Worker// 在 Index.ets 中添加按钮并调用 Worker Button( 保存文件) .onClick(() { const worker new Worker(workers/fileWorker.js); worker.postMessage({ type: saveFile, data: { content: this.markdownText } }); worker.onmessage (event) { const result event.data; promptAction.showToast({ message: result.message, duration: 2000 }); worker.terminate(); }; }) .margin({ top: 20 })️ 效果展示https://img-blog.csdnimg.cn/20240601120000123.png图鸿蒙版 Markdown 编辑器运行效果左右分栏实时预览✅ 左侧输入 → 右侧自动更新✅ 点击保存 → 调用 Worker 模拟主进程操作✅ 使用 Web 组件渲染动态内容 四、鸿蒙 vs Electron对比分析特性Electron鸿蒙当前方案渲染引擎ChromiumWeb 组件基于系统 WebView主进程Node.jsWorker eTS 逻辑层系统 API全面fs, net, shell 等有限需通过 FA/PA 调用多端部署❌ 仅桌面✅ 手机、平板、TV、车机等包体积较大~100MB小依赖系统能力开发语言JS/TS HTML/CSSeTS/JS ArkUI 当前鸿蒙方案更轻量、更适合多设备但缺乏完整的 Node.js 生态支持。 五、未来展望鸿蒙会出自己的 Electron 吗华为已经在布局OpenHarmony 桌面环境如深开鸿、灵动终端等未来可能出现Node.js 移植版已在社区尝试Chromium 嵌入式版本官方桌面应用框架类似 Electron一旦这些能力落地我们将真正迎来“Harmontron”—— 鸿蒙版 Electron 六、源码获取GitHub 地址 https://github.com/yourname/harmony-electron-demo包含完整 eTS 项目Web 预览页Worker 示例Markdown 解析支持欢迎 Star Fork✅ 总结虽然目前鸿蒙无法直接运行 Electron 应用但我们可以通过以下方式实现“类 Electron”体验使用 Web 组件加载本地网页→ 替代渲染进程使用 Worker 处理后台任务→ 模拟主进程结合 eTS 和 ArkUI→ 构建现代化界面这种模式特别适合开发内部工具软件多端一致的内容展示应用快速原型验证随着 OpenHarmony 生态的发展真正的“鸿蒙桌面应用框架”指日可待