天天看點

C#桌面開發的未來WebWindow

目錄

  • 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 (建議)

中間可能在更新的時候,要求你更新作業系統才可以安裝(安裝過程略)

C#桌面開發的未來WebWindow
C#桌面開發的未來WebWindow

本人的體驗環境是:

  • 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

  1. 不需要依賴.net core 3.0
  2. 僅僅依賴.net framework 4.5便可。
  • Clone下源碼到本地
C#桌面開發的未來WebWindow
  • 打開WebWindow.Dev解決方案
C#桌面開發的未來WebWindow
  • 搗鼓編譯源碼的事情
    • 可愛又可恨的WebWindow.Native
      • 可愛:它實作了WebView的調用;
C#桌面開發的未來WebWindow
  • 可恨:對于國情來說,它并不完美;

    * 我們需要它對更多的浏覽器的支援,特别針對雙引擎浏覽器

    * 對于windows底層方法的調用,并不一定需要原生支援,特别是一些簡單的操作,js + http + webapi的方式完全可以勝任。

C#桌面開發的未來WebWindow
  • 編譯的前提條件: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

的引用問題
  • WebWindow.Dev

    解決方案中,新增.net framework 4.5控制台應用程式

    ZejeWebWindowApp

  • ZejeWebWindowApp

    中加入WebWindow項目引用
C#桌面開發的未來WebWindow
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();
        }
    }
}
           
  • 修改項目配置
C#桌面開發的未來WebWindow
C#桌面開發的未來WebWindow

  • 怎麼相容國産浏覽器?
  • 怎麼支援x86?
  • 其他需要調用windows底層方法如何處理?

這些都不是不懂

C++

的我能左右的,希望

.net

C++

高手們貢獻點力量吧!

作者:哲智(Zeje)

出處:http://www.cnblogs.com/zeje/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。