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

相关推荐
恋猫de小郭16 分钟前
Flutter Riverpod 3.0 发布,大规模重构下的全新状态管理框架
android·前端·flutter
纤瘦的鲸鱼29 分钟前
MySQL慢查询
android·adb
郭庆汝36 分钟前
模型部署:(三)安卓端部署Yolov8-v8.2.99目标检测项目全流程记录
android·yolo·目标检测·yolov8
fatiaozhang95271 小时前
中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开启ADB ROOT安卓固件-方法3
android·xml·adb·电脑·电视盒子·刷机固件
柯南二号1 小时前
【Android】设置让输入框只能输入数字
android
CV资深专家1 小时前
Android 编译系统lunch配置总结
android
撩得Android一次心动1 小时前
Android 项目:画图白板APP开发(五)——橡皮擦(全面)
android·绘图·自定义视图
2501_915106321 小时前
App Store 软件上架全流程详解,iOS 应用发布步骤、uni-app 打包上传与审核要点完整指南
android·ios·小程序·https·uni-app·iphone·webview
开开心心loky1 小时前
[iOS] ViewController 的生命周期
macos·ui·ios·objective-c·cocoa
2301_794333911 小时前
Docker Compose 运行 Milvus (Mac) 并与 python 连接测试
macos·docker·milvus