亲宝软件园·资讯

展开

C#桌面开发的未来-WebWindow

zeje 人气:0

WebWindow源码作者博客基于Chromium的Edge体验体验方式一:体验方式二:预期目标:遗留的问题

WebWindow

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

基于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 (建议)

中间可能在升级的时候,要求你更新操作系统才可以安装(安装过程略)

体验

本人的体验环境是:

  • 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();
           }
       }
    }
  • 体验效果

体验方式二:
预期目标:
  1. 不需要依赖.net core 3.0

  2. 仅仅依赖.net framework 4.5便可。

  • Clone下源码到本地

  • 打开WebWindow.Dev解决方案

  • 捣鼓编译源码的事情

    • 可爱又可恨的WebWindow.Native

      • 可爱:它实现了WebView的调用;

<?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/2000/svg" NS = "http://www.w3.org/2000/svg" />

os=Windows

os=Linux

os=Mac

WebWindowAPP

WebWindow

需要基于Chromium的Edge

WebKit

Safari

webapp

  * 可恨:对于国情来说,它并不完美;
   * 我们需要它对更多的浏览器的支持,特别针对双引擎浏览器
   * 对于windows底层方法的调用,并不一定需要原生支持,特别是一些简单的操作,js + http + webapi的方式完全可以胜任。

browser=Edge

browser=WebKit

browser=搜狗浏览器

browser=QQ浏览器

browser=360浏览器

browser=其他国产双引擎浏览器

browser=Safari

WebWindowAPP

WebWindow

需要基于Chromium的Edge

WebKit

Safari

WebKit内核

webapp

  • 编译的前提条件:WebWindow.Native

  • 安装C++桌面开发支持

  • 使用x64编译WebWindow.Native

    捣鼓这个最麻烦,每个人的环境不一,像我这等C++丢了12年的人(大一学过)来说,报include异常后完全不知道怎么搞(请教了会C++的朋友也无果),后来好像是更新了操作系统的补丁,重启后就能正常编译了。

  • 把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的引用问题

  • WebWindow.Dev解决方案中,新增.net framework 4.5控制台应用程序ZejeWebWindowApp

  • ZejeWebWindowApp中加入WebWindow项目引用

  • 加入启动代码

``` csharp
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();
       }
   }
}
```
* 修改项目配置

* 体验效果

加载全部内容

相关教程
猜你喜欢
用户评论