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

相关推荐
张风捷特烈4 小时前
Flutter 伪3D绘制#03 | 轴测投影原理分析
android·flutter·canvas
“抚琴”的人6 小时前
【机械视觉】C#+VisionPro联合编程———【六、visionPro连接工业相机设备】
c#·工业相机·visionpro·机械视觉
omegayy7 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
mingqian_chu7 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
自动花钱机7 小时前
Kotlin问题汇总
android·开发语言·kotlin
FAREWELL000757 小时前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
CodeCraft Studio8 小时前
Excel处理控件Spire.XLS系列教程:C# 合并、或取消合并 Excel 单元格
前端·c#·excel
勘察加熊人9 小时前
forms实现连连看
c#
hvinsion9 小时前
PPT助手:一款集计时、远程控制与多屏切换于一身的PPT辅助工具
c#·powerpoint·ppt·ppt助手·ppt翻页
行墨10 小时前
Kotlin 主构造函数
android