目录
- WebWindow
- 源码
- 作者博客
- 基于Chromium的Edge
- 体验
- 体验方式一:
- 体验方式二:
- 预期目标:
- 遗留的问题
WebWindow是跨平台的库。 Web Window的当前实验实现可在以下平台上运行:
- Windows – 需要基于Chromium的Edge
- Linux – 使用WebKit
- Mac – 需要Safari
https://github.com/SteveSandersonMS/WebWindow.git
Zeje Fork的分支:https://github.com/zeje/WebWindow.git
https://blog.stevensanderson.com
因为大众用的还是Windows操作系统(如win 7,win 10)。为了面向大众,我们在Windows 10下体验下WebWindow。现在下载并安装基于Chromium的Edge:
下载地址:https://www.microsoft.com/en-us/edge
下载地址:https://www.microsoft.com/en-us/edge/business/download (建议)
中间可能在升级的时候,要求你更新操作系统才可以安装(安装过程略)

本人的体验环境是:
- Window 10
- Visual Studio 2019
- 基于 Chrome的 Edge
- 创建一个.net core 3.0的控制台程序
- 安装WebWindow Nuget包
- 加入启动代码
using System; using WebWindows; namespace ZejeDesk.WebWindowApp { class Program { static void Main(string[] args) { var window = new WebWindow("择捷工作室WebWindow体验"); window.NavigateToString("<h1 style=\"text-align:center;\">择捷工作室!</h1> <div style=\"text-align:center;\">WebWindow体验(该桌面窗口为.NET Core 3.1应用)</div>"); window.WaitForExit(); } } }
- 体验效果
C#桌面开发的未来WebWindow
- 不需要依赖.net core 3.0
- 仅仅依赖.net framework 4.5便可。
- Clone下源码到本地
- 打开WebWindow.Dev解决方案
- 捣鼓编译源码的事情
- 可爱又可恨的WebWindow.Native
- 可爱:它实现了WebView的调用;
- 可爱又可恨的WebWindow.Native
-
可恨:对于国情来说,它并不完美;
* 我们需要它对更多的浏览器的支持,特别针对双引擎浏览器
* 对于windows底层方法的调用,并不一定需要原生支持,特别是一些简单的操作,js + http + webapi的方式完全可以胜任。
- 编译的前提条件:WebWindow.Native
C#桌面开发的未来WebWindow - 安装C++桌面开发支持
C#桌面开发的未来WebWindow -
使用x64编译WebWindow.Native
捣鼓这个最麻烦,每个人的环境不一,像我这等C++丢了12年的人(大一学过)来说,报include异常后完全不知道怎么搞(请教了会
的朋友也无果),后来好像是更新了操作系统的补丁,重启后就能正常编译了。C++
C#桌面开发的未来WebWindow - 把WebWindow改成面向多目标框架的项目
修改WebWindow.csproj文件
<TargetFramework>netstandard2.1</TargetFramework>
为
<TargetFrameworks>net45;net451;net452;net46;net461;net471;netstandard2.1;netcoreapp2.0;netcoreapp3.0</TargetFrameworks>
处理掉部分代码的问题,如:
net45下包 System.Runtime.InteropServices.RuntimeInformation
的引用问题
- 在
解决方案中,新增.net framework 4.5控制台应用程序WebWindow.Dev
ZejeWebWindowApp
-
中加入WebWindow项目引用ZejeWebWindowApp
using System;
using WebWindows;
namespace ZejeWebWindowApp
{
class Program
{
static void Main(string[] args)
{
var window = new WebWindow("择捷工作室WebWindow体验");
window.NavigateToString("<h1 style=\"text-align:center;\">择捷工作室!</h1> <div style=\"text-align:center;\">WebWindow体验(该桌面窗口为.NET FrameWork 4.5应用)</div>");
window.WaitForExit();
}
}
}
- 修改项目配置
- 怎么兼容国产浏览器?
- 怎么支持x86?
- 其他需要调用windows底层方法如何处理?
这些都不是不懂
C++
的我能左右的,希望
.net
的
C++
高手们贡献点力量吧!
作者:哲智(Zeje)
出处:http://www.cnblogs.com/zeje/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。