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/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("

择捷工作室!

WebWindow体验(该桌面窗口为.NET Core 3.1应用)

"); window.WaitForExit(); } }}

  • 体验效果

体验方式二:

预期目标:

1、不需要依赖.NET Core 3.0

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

  • Clone下源码到本地
  • 打开WebWindow.Dev解决方案
  • 捣鼓编译源码的事情

可爱又可恨的WebWindow.Native

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

  • 可恨:对于国情来说,它并不完美;

* 我们需要它对更多的浏览器的支持,特别针对双引擎浏览器

* 对于windows底层方法的调用,并不一定需要原生支持,特别是一些简单的操作,js + http + webapi的方式完全可以胜任。

  • 编译的前提条件:WebWindow.Native
  • 安装C++桌面开发支持
  • 使用x64编译WebWindow.Native

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

  • 把WebWindow改成面向多目标框架的项目

修改WebWindow.csproj文件

netstandard2.1

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项目引用
  • 加入启动代码
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(); } }}

  • 修改项目配置
  • 体验效果

遗留的问题

  • 怎么兼容国产浏览器?
  • 怎么支持x86?
  • 其他需要调用windows底层方法如何处理?

这些都不是不懂C++的我能左右的,希望.NET的C++高手们贡献点力量吧!

window 桌面开发_C#桌面开发的未来WebWindow相关推荐

  1. 桌面小宠物项目开发_C# 桌面宠物 示例源码(透明窗体)

    [实例简介] 可以按时叫你吃饭可以控制在桌面上行走等等等等............ [实例截图] [核心代码] using System; using System.Collections.Gener ...

  2. 主流html5桌面应用开发,主流HTML5开发工具推荐

    HTML5开发工具推荐 HTML5被看做是web开发者创建流行web应用的利器,增加了对视频和Canvas 2D的支持.HTML5的诞生还让人们重新审视浏览器专用多媒体插件的未来,如Adobe的Fla ...

  3. 用JS开发跨平台桌面应用,从原理到实践

    导读 使用Electron开发客户端程序已经有一段时间了,整体感觉还是非常不错的,其中也遇到了一些坑点,本文是从[运行原理]到[实际应用]对Electron进行一次系统性的总结.[多图,长文预警-] ...

  4. .net linux 界面设计,.NET Core3.0开发Liunx桌面应用程序

    .NET Core3.0开发Liunx桌面应用程序主要是依靠GTK. 什么是GTK? GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发.跨平台的图形工具包.最初是为GIMP写的,已 ...

  5. 如何使用前端技术开发一个桌面跨端应用

    本文将会讲述一个完整的跨端桌面应用 代码画板 的构建,会涉及到整个软件开发流程,从开始的设计.编码.到最后产品成型.包装等. 本文不仅仅是一篇技术方面的专业文章,更会有很多产品方面的设计思想和将技术转 ...

  6. 如何使用Vue开发Electron桌面程序

    目录 一.Electron介绍 二.项目搭建 1. 使用 vue cli 创建vue项目 2. 安装插件 vue-cli-plugin-electron-builder ​编辑 三.开发总结 1. 配 ...

  7. h5开发Linux桌面,heX:用HTML5和Node.JS开发桌面应用

    简介:heX,一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁琐的UI和交互开发工作,使其 ...

  8. 在Flutter项目中开发IOS桌面组件(WidgetExtension)

    在Flutter项目中开发IOS桌面组件(WidgetExtension) 具体的WidgetExtension的开发流程这里就不细说了,可以参考文末的链接. 在Flutter项目开发IOSWidge ...

  9. 入坑 Electron 开发跨平台桌面应用

    ‍ 作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和 Node.js 之上的 -- 二位分工明确,一个负责界面,一个负责背后的逻辑,典型的「你负责貌 ...

最新文章

  1. Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
  2. 关于Javascript Hijacking
  3. 你知道怎么使用DebugView查看调试信息吗?
  4. 【记录保存】批量删除进程
  5. hadoop 集群启动时 Address already in use 解决方法
  6. chartjs更新数据 vue_vue.js - 在vue中 怎么更改chart图表的文字大小
  7. MDSpreadView
  8. linux中对数据怎么降序,Linux系统sort排序命令怎么使用
  9. win7安装证书时无响应的解决办法
  10. 理解linux下的load
  11. 20165320 第六周学习总结
  12. JUC与JVM并发编程学习笔记01
  13. Thinkphp学习笔记——友情链接的添加和验证
  14. 手绘线条一直画不直_板绘线条不流畅怎么办?线稿就得这样练!
  15. Avesta飞秒光纤激光器
  16. Windows Mobile 6.5开发环境搭建
  17. No buffer space available问题解决
  18. 图像处理之对比度增强
  19. 普通本科,开发一周年纪念日—-赠给自己的礼物
  20. Portapack应用开发教程(十二) SSTV接收机 A

热门文章

  1. calendar当前时间整点_时间处理相关类
  2. SpringCloud中Feign的适配器的实现方案
  3. jdk默认垃圾收集器
  4. 聊一聊 SpringBoot 自动配置的原理
  5. Maven安装和配置及eclipse创建Maven项目
  6. MySQL协议.NET Core实现(一)
  7. 用python解算法谜题_编程的乐趣 用Python解算法谜题
  8. 计算机二级msoffice操作题如何评分,2017年计算机二级MSOffice操作题及答案解析
  9. elasticsearch的多索引联合查询以及范围日期查询示例
  10. 【PAT (Advanced Level) Practice】1037 Magic Coupon (25 分)