C#桌面开发的未来WebWindow

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

C#桌面开发的未来WebWindow

zeje   2020-03-13 我要评论
[TOC] # WebWindow WebWindow是跨平台的库。 Web Window的当前实验实现可在以下平台上运行: * Windows – 需要基于Chromium的Edge * Linux – 使用WebKit * Mac – 需要Safari ## 源码 https://github.com/SteveSandersonMS/WebWindow.git Zeje Fork的分支: ## 作者博客 https://blog.stevensanderson.com ## 基于Chromium的Edge 因为大众用的还是Windows操作系统(如win 7,win 10)。为了面向大众,我们在Windows 10下体验下WebWindow。现在下载并安装基于Chromium的Edge: 下载地址:https://www.microsoft.com/en-us/edge 下载地址:https://www.microsoft.com/en-us/edge/businesshttps://img.qb5200.com/download-x/download (建议) 中间可能在升级的时候,要求你更新操作系统才可以安装(安装过程略) ![默认浏览器](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125940261-1869574483.png) ![基于 Chrome的 Edge](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125940004-311917660.png) ## 体验 本人的体验环境是: * Window 10 * Visual Studio 2019 * 基于 Chrome的 Edge ### 体验方式一: * 创建一个.net core 3.0的控制台程序 * 安装WebWindow Nuget包 * 加入启动代码 ``` csharp using System; using WebWindows; namespace ZejeDesk.WebWindowApp { class Program { static void Main(string[] args) { var window = new WebWindow("择捷工作室WebWindow体验"); window.NavigateToString("

择捷工作室!

WebWindow体验(该桌面窗口为.NET Core 3.1应用)
"); window.WaitForExit(); } } } ``` * 体验效果 ![体验效果1](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125939704-308788564.png) ### 体验方式二: #### 预期目标: 1. 不需要依赖.net core 3.0 2. 仅仅依赖.net framework 4.5便可。 * Clone下源码到本地 ![克隆 Web Window源码](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125939439-1688820785.png) * 打开WebWindow.Dev解决方案 ![打开解决方案](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125939155-1103438999.png) * 捣鼓编译源码的事情 * 可爱又可恨的WebWindow.Native * 可爱:它实现了WebView的调用; ![](https://img2020.cnblogs.com/blog/87284/202003/87284-20200313132625534-1713847887.png) * 可恨:对于国情来说,它并不完美; * 我们需要它对更多的浏览器的支持,特别针对双引擎浏览器 * 对于windows底层方法的调用,并不一定需要原生支持,特别是一些简单的操作,js + http + webapi的方式完全可以胜任。 ![](https://img2020.cnblogs.com/blog/87284/202003/87284-20200313132648508-1313913215.png) * 编译的前提条件:WebWindow.Native ![工具获取更多](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125938774-1367625821.png) * 安装C++桌面开发支持 ![安装 C Plus桌面开发支持](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125938497-938064543.png) * 使用x64编译WebWindow.Native 捣鼓这个最麻烦,每个人的环境不一,像我这等C++丢了12年的人(大一学过)来说,报include异常后完全不知道怎么搞(请教了会`C++`的朋友也无果),后来好像是更新了操作系统的补丁,重启后就能正常编译了。 ![使用x64编译 Web Window Native](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125938185-1573001583.png) * 把WebWindow改成面向多目标框架的项目 修改WebWindow.csproj文件 ``` xml netstandard2.1 ``` 为 ``` xml net45;net451;net452;net46;net461;net471;netstandard2.1;netcoreapp2.0;netcoreapp3.0 ``` 处理掉部分代码的问题,如: > net45下包`System.Runtime.InteropServices.RuntimeInformation`的引用问题 * 在`WebWindow.Dev`解决方案中,新增.net framework 4.5控制台应用程序`ZejeWebWindowApp` * 在`ZejeWebWindowApp`中加入WebWindow项目引用 * ![Zeje Web Window App](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125937937-1314557497.png) * 加入启动代码 ``` csharp using System; using WebWindows; namespace ZejeWebWindowApp { class Program { static void Main(string[] args) { var window = new WebWindow("择捷工作室WebWindow体验"); window.NavigateToString("

择捷工作室!

WebWindow体验(该桌面窗口为.NET FrameWork 4.5应用)
"); window.WaitForExit(); } } } ``` * 修改项目配置 ![Zeje Web Window App X64](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125937642-1969455784.png) * 体验效果 ![Zeje Web Window App效果](https://img2018.cnblogs.com/blog/87284/202003/87284-20200313125937211-73832771.png) ## 遗留的问题 * 怎么兼容国产浏览器? * 怎么支持x86? * 其他需要调用windows底层方法如何处理? 这些都不是不懂`C++`的我能左右的,希望`.net`的`C++`高手们贡献点力量吧!

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们