




MAUI Blazor Hybrid 是 .NET 中融合原生跨平台能力(MAUI)与 Web UI 开发体验(Blazor)的方案,支持用 C# 编写 Razor 组件并调用摄像头、蓝牙、NFC 等设备功能;需 Visual Studio 2025 v17.12+ 及对应工作负载,项目入口为 wwwroot/index.html,通过 MAUI Essentials 或平台服务注入实现原生能力调用,权限须在各平台配置文件中声明。
MAUI Blazor Hybrid 是 .NET 生态中把原生跨平台能力(MAUI)和 Web UI 开发体验(Blazor)结
合起来的方案,适合想用 C# 写界面、又需要调用摄像头、蓝牙、NFC、本地数据库等设备功能的场景。它不是纯 Web 应用,也不是传统 MAUI XAML 应用,而是“Blazor 组件跑在 MAUI 容器里”,页面逻辑用 Razor + C#,底层由 MAUI 提供平台桥接。
必须安装 Visual Studio 2025 v17.12 或更高版本,并启用两个工作负载:
创建方式有两种:
项目生成后,结构类似普通 MAUI,但 wwwroot/index.html 是入口,Pages/ 下是 Razor 组件,Platforms/ 下可写平台专用代码。
刚创建的项目默认支持 Windows、Android、iOS(需 Mac)、macOS。常用启动方式:
注意:不同平台的权限(如相机、位置、蓝牙)需在对应 Platforms/xxx/Info.plist 或 AndroidManifest.xml 中声明,否则运行时会拒绝访问。
MAUI Blazor Hybrid 的核心优势是能无缝调用原生 API。不是靠 JS 互操作硬桥接,而是通过 MAUI 的 Microsoft.Maui.Essentials 或平台服务注入:
MediaPicker.CapturePhotoAsync() 直接拍照,返回 FileResult,再转成 base64 或保存到本地Plugin.BluetoothLE 或使用 MAUI Community Toolkit 的 BluetoothLE 封装,从 Blazor 页面通过 @inject 获取服务实例调用Preferences.Set("key", value) 存取轻量数据,比手写文件更安全可靠如果官方组件不支持某功能(比如 NFC),可在 Platforms/Android/MainActivity.cs 中扩展 Java/Kotlin 代码,再通过 MAUI 的 DependencyService 或 MauiHandlers 暴露给 Blazor 层。
默认 UI 是基础 HTML + Bootstrap CSS。想提升体验,推荐集成 BootstrapBlazor:
BootstrapBlazor 和 BootstrapBlazor.FontAwesome(v7.*) 中添加 CSS 引用:
点我
自定义主题只需改 wwwroot/css/app.css,或引入 Tailwind、Bulma 等现代 CSS 框架,Blazor 组件自动响应。
基本上就这些。起步不复杂,但容易忽略权限配置和平台初始化细节。只要环境搭好、模板跑通、第一个摄像头按钮点出来,后续加数据库、蓝牙、NFC 就是按模块叠加的事。