如何在C# Avalonia应用的WebView中嵌入cmd或bash/WSL终端控件
可用的开源网页端终端控件推荐
针对Avalonia WebView嵌入的使用场景,目前成熟度较高的开源网页终端项目如下:
- xterm.js
VS Code内置终端的底层依赖项目,是当前生态最完善的网页终端方案。原生支持完整的ANSI转义序列解析、自定义主题、键盘映射、多编码适配,对Windows cmd、PowerShell、WSL bash的交互适配做了充分验证。官方提供了大量可选插件,可快速实现搜索、WebGL渲染加速、图片展示、鼠标交互等扩展功能,是该需求的首选方案。 - jQuery Terminal Emulator
轻量无额外冗余依赖的网页终端组件,打包体积远小于xterm.js,适合轻量终端交互场景。内置支持命令历史记录、TAB自动补全、自定义命令拦截、基础ANSI样式渲染,接入门槛较低,不需要复杂的配置即可跑通基础的终端交互逻辑。 - DomTerm
支持富文本扩展的网页终端项目,除了基础的终端模拟能力外,还支持在终端输出中嵌入HTML元素、分屏展示、会话持久化等特性,如果你有在终端中展示富文本内容、图形化输出的需求可以选择该项目。
对接注意:你可以直接把终端组件的静态资源嵌入到Avalonia应用的程序集中本地加载,无需部署在线服务。使用Avalonia WebView提供的JS互操作接口(C#端调用
ExecuteScriptAsync发消息给前端,前端通过对应平台WebView的消息接口发消息给C#后端)传输终端输入输出流,C#后端通过ConPTY(Windows)、POSIX PTY(Linux/macOS/WSL)创建对应shell进程绑定流即可。
内容的提问来源于stack exchange,提问作者Marco Arigliani
相关产品推荐
相关产品推荐

