Avalonia跨平台入门第三十九篇之再耍CEF
内容提要
作者分享了在Ubuntu下运行浏览器的效果,包括在openKylin系统和RK3568下的运行效果。作者还提供了解决运行过程中出现的问题的方案。最后,作者表示编程的乐趣在于改bug、编码、完成和挖填坑。作者希望读者能够关注并留言,以便回复和支持。
延伸解读
跨平台运行的实际环境验证
文章展示了在Ubuntu、openKylin系统以及RK3568硬件上运行基于CEF的Avalonia浏览器的效果。这表明该方案不仅能在常见Linux发行版上工作,还能适配国产操作系统和ARM架构嵌入式设备,为需要在多平台部署WebView的开发者提供了实际参考。
依赖库缺失的典型处理方式
运行过程中出现了libdl.so.2缺失的问题,作者通过whereis定位后,使用软链接将x86_64架构下的库文件链接到系统库目录。这反映了Linux环境下动态库路径配置的常见做法,但需注意该命令针对特定架构,在其他平台上可能需要调整路径。
X11开发包与ARM环境变量
解决libdl问题后又遇到X11相关错误,通过安装libx11-dev解决。而在RK3568上则需通过设置LD_PRELOAD环境变量预加载libcef.so。这些步骤说明CEF在Linux和ARM平台对系统依赖和运行环境有特定要求,部署时需根据平台差异调整。
代码集成与本地页面加载
示例代码展示了如何创建WebView并加载本地HTML文件,通过BrowserCreated事件触发导航,并在窗口关闭时调用Shutdown。这为在Avalonia应用中嵌入浏览器控件提供了基本模式,但实际使用中可能还需处理更多交互和生命周期问题。
Q&A
在Ubuntu下运行浏览器的效果如何?
在Ubuntu下,浏览器运行效果良好,尤其是在openKylin系统和RK3568上都有展示。
如何在代码中使用WebView加载本地HTML文件?
可以使用以下代码:WebView webview = new() { Focusable = true }; string url = $"file:///{AppDomain.CurrentDomain.BaseDirectory}Map//HeatMap.html"; webview.BrowserCreated += (s, e) => webview.Navigate(url);
在RK3568上遇到的X11问题如何解决?
可以通过运行命令 'sudo apt-get install libx11-dev' 来解决RK3568上的X11问题。
作者对编程的看法是什么?
作者认为编程的乐趣在于改bug、编码、完成和挖填坑,强调了编程过程中的各种情感体验。
文章中提供了哪些开源项目的链接?
文章中提供了一个开源项目的链接:https://github.com/Haltroy/CefNet.Avalonia.Examples。
作者希望读者如何参与互动?
作者希望读者能够留言,分享意见和想法,并表示会及时回复大家。