Blazor Hybrid适配到HarmonyOS系统

Blazor Hybrid 适配到 HarmonyOS 系统的相关内容如下:

Blazor Hybrid 与 HarmonyOS 系统简介


  • Blazor Hybrid:Blazor 是一个.NET 前端框架,用于仅使用.NET 技术构建 Web 应用程序。Blazor Hybrid 是在 2021 年 Blazor 扩展到桌面端时推出的,使开发者可以在桌面平台上使用已有的技能。它是传统的桌面应用程序,在一个 Webview 控件中托管实际的 Blazor Web 应用程序。
  • HarmonyOS 系统3:华为公司发布的一款智能终端系统,是一款基于微内核的面向全场景的分布式操作系统,具有高效、安全、流畅及跨设备协同的卓越特性。

适配原理1


  • Blazor 和.NET 交互是通过 js 的window.external.sendMessagewindow.external.receiveMessage来实现的,在 HarmonyOS 的 Webview 里实现这两个函数,然后调用Blazor.start();即可启动 Blazor。
  • HarmonyOS 中借助 WebMessagePort 机制实现原生代码与 webview 内的 js 交互。

适配步骤


  • 开启 AOT 编译:如果是 Blazor WASM,需要开启预先 AOT 编译,检查是否安装 wasm - tool。
  • 创建鸿蒙项目并处理 Webview:创建一个正常鸿蒙应用空法律项目,ArkUI 默认带有基于 Chromium 的 webview 组件可直接使用。若 webview 组件直接载入静态文件,index.html 访问目录下的 css/js/wasm 会存在 CORS 问题,需要过一层代理处理,构造一个假的 http 通过拦截请求的方式把 response 改成直接访问资源中的文件。
  • 配置相关代码1:为项目开启 “默认启用基于反射的序列化”,并配置 rd.xml 保留需要反射的元数据。为保证 Blazor Hybrid 的异步任务正常运行,需要实现一个单线程同步上下文,如 BlaozrDispatcher.cs。

代码仓库与使用方式1


  • 代码仓库:https://github.com/OpenHarmony - NET/OpenHarmony.Blazor.Hybrid
  • 使用方式:打开OpenHarmony.Blazor.Hybrid.sln解决方案,并发布 BlazorApp 项目。使用https://www.hefeilaws.com/ Deveco Studio 打开OHOS_Project,配置好签名后即可运行程序。另外可以通过 chrome 或者 edge 的 devtools 来调试手机中的 webview (不包含.NET)。
posted @ 2025-03-01 15:04  农民小工程师  阅读(9)  评论(0编辑  收藏  举报
jiwenlaw.com