可以跨平台运行的BlazorServer套壳软件,窗口程序,再也不用因为Maui不能再Linux下运行苦恼了!
实现功能:
网页(js)- 窗体(c#) 互操作
窗体
(c#) - BlazorServer(c#) 页面 互操作
基本功能足够日常开发!
熟悉前端开发的,不用画界面直接做功能就行了,各种本地化功能都可以通过BlazorServer操作,和Winform一样的操作方式
windows、Linux测试通过Mac暂无设备测试,还不确定运行情况!
注意:本案例是在小红的基础示例上面扩展的,所以前置操作参考
需要安装Nuget包
<PackageReference Include="Xhm.CPF.Cef" />
到 https://cef-builds.spotifycdn.com/index.html#windows32:90.6.5%2Bg7a604aa%2Bchromium-90.0.4430.93 下载对应平台的二进制文件,一般是选择 Sample Application ......client.tar.bz2
注意版本号:新版的换成了 90.6.5+g7a604aa+chromium-90.0.4430.93
需要注意的是如果你需要的是Linux平台的,需要手动使用strip命令将调试信息剥离(Linux那边打开控制台输入strip 再把libcef.so拖进来,再按enter,so文件就小了)或者自己调整编译参数重新编译,因为网站上下载的二进制文件巨大,达到一个G了
一般情况下,把压缩包里的比如libcef...同目录里的所有文件和文件夹都复制到你的程序目录就行
如果是Mac的话
将文件\Release\Chromium Embedded Framework.framework\Chromium Embedded Framework复制到你的程序目录并重命名为libcef.dylib
将“\Release\Chromium Embedded Framework.framework\Libraries”文件夹中的所有文件和文件夹复制你的程序目录
将“\Release\Chromium Embedded Framework.framework\Resources”文件夹中的所有文件和文件夹复制到你的程序目录
如果你需要支持视频播放,那你需要自己修改编译参数,重新编译才行,具体教程可以百度
如果你想自定义特殊功能,比如拦截请求,你需要继承 WebBrowser,并重写 OnCreateWebBrowser
OnCreateWebBrowser里面写client.LoadHandler = new CpfCefLoadHandler();继承并重写对应的Handler并设置过来mac上运行在任务栏上可能会有多个图标闪烁之后就没了,是正常的,cef的多进程问题,不影响使用