当前位置: 首页 > article >正文

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


http://www.kler.cn/a/504151.html

相关文章:

  • 小游戏前端地区获取
  • Vue2+OpenLayers添加/删除点、点击事件功能实现(提供Gitee源码)
  • 神经网络
  • Android string.xml中特殊字符转义
  • 浅谈云计算12 | KVM虚拟化技术
  • 流批一体计算引擎-18-离线和实时缝合成的流批一体缘何成为主流
  • 如何查看gitlab mr labels 添加和删除的历史
  • Photoshop快速无痕去除照片海报中的文字logo
  • 软件测试之单元测试总结
  • Java 面试中的高频算法题详解
  • WordPress开发进群V2主题,多种引流方法,引私域二次变现
  • TinyML中的去中心化资源共享:无线双层Gossip并行随机梯度下降用于协作学习
  • React:构建用户界面的JavaScript库
  • IvorySQL 4.0 之 Invisible Column 功能解析
  • 性能测试工具Jmeter分布式运行
  • 使用 C# 制作图像的特写窗口
  • Linux 查看磁盘的 I/O 读写情况(随手记)
  • 【2025 Rust学习 --- 14 迭代器创建和使用】
  • qt QLabel QPushButton 控件重写paintEvent后 控件消失
  • 【Ubuntu与Linux操作系统:六、软件包管理】
  • 忘记了PDF文件的密码,怎么办?
  • Linux操作系统分析实验一:多线程与内核模块编程
  • 【深度学习】论文画图
  • MySQL学习笔记5【SQL优化/视图/存储过程/触发器】
  • 使用Axios实现无刷新信息验证:提升用户体验
  • 基于Piquasso的光量子计算机的模拟与编程