ElectronSharp,.Net跨平台的多一种选择

文章目录

背景

最近有个项目是基于Blazor的跨平台项目,要求在Windows、安卓平板和Mac上能跑,而且要求实现视频通话功能,而Web里的视频通话无非就是基于WebRTC技术。经过前期调研,通过套壳MAUI,Windows和安卓平板都能实现在WebView里实现视频通话功能,唯独Mac里不行,查到一些可能的原因:
苹果不允许第三方app通过Safari内核调用摄像头等功能

来源1: https://developer.apple.com/forums/thread/736199

来源2:https://github.com/dotnet/maui/issues/20511

解决方案

那MAUI这条路走不通,只能另寻其他方案,偶然发现Electron.Net不过这个项目停留在.Net 6,从.Net 7开始由ElectronSharp 继续更新维护,目前最新版本已跟进到.Net 9,按着教程实践了一下,除了前期下载Electron环境因为网络问题有点慢,全程基本没有任何障碍,最终效果也是非常完美:

而且,blazor跑在mac上居然流畅度要优于Windows,这是我所没想到的。

小结

项目最终方案是用Blazor写所有的功能,只是在部署的时候根据不同平台套不同的壳部署:

Windows:WPF+WebView2

安卓平板:MAUI+WebView(这里要吐槽一下,在安卓平板上居然有卡顿,不知道是哪没优化好)

MAC:Electron-Sharp

相关推荐
董三毛20 分钟前
Kotlin Coroutine 底层实现原理
android
L1087023 分钟前
AutoJsPro GoogleMaterial3 M3组件使用示例
android
用户83562907805139 分钟前
Word 图表自动化:基于 C# 的高效数据可视化方案
后端·c#
Mac技巧大咖1 小时前
Mac误删文件,废纸篓也清了?Mac时光机器仍可恢复找回
macos·mac误删文件
枣把儿2 小时前
「zotepad」用Gemini3pro写出一个高效写作和发文的记事本应用
android·前端·nuxt.js
明川2 小时前
Android Gradle 学习 - 生命周期和Task
android·前端·gradle
技术摆渡人2 小时前
Android 系统技术探索(5)指尖的舞蹈(Input 系统与 ANR)
android
Crazy Struggle2 小时前
.NET 8 微服务框架长什么样?集成 AI 智能体、多租户、自动调度与实时通信
微服务·.net·.net 8.0
来碗疙瘩汤2 小时前
uniapp动态读取版本号
android
程序员果子3 小时前
零拷贝:程序性能加速的终极奥秘
linux·运维·nginx·macos·缓存·centos