WebView2是什么? WebView2微软开源的一个控件,它使用 Microsoft Edge 作为绘制引擎,以在本机应用中 web 技术(HTML、CSS 以及 JavaScript)。 众所周知,Microsoft Edge是基于 Chromium 的开源项目,也就是说,WebView2 理论上可以用来作为一种界面方案。 微软发布WebView2已经很长时间了,听说表现优秀,作为学习C#的一部分,今天来试试做个DEMO。 首先打开全宇宙最好的IDE ----> Visual Studio 2022,创建新项目--> windows窗体应用,选好后点击下一步。
填写名称和目录,选好后点击下一步。 这里我选了.net core 3.1,选好后点击创建。 项目创建成功后,添加包。
在搜索框里输入 Microsoft.Web.WebView2.Core ,然后点击安装。
记得把前端开发工具也装上。
然后从工具箱里把WebView2和button这两个控件拖到窗体里面。
接下去给webview改一下名字,并且指定一下本地HTML的位置,这个HTML就是本次实验要做界面的文件。
在刚才指定的位置新建wv2.html,然后随便做两个按钮。 现在试试运行一下,看看能不能显示出来。 点击运行,挺丑的,不过总算显示出来了:
查了一下资料,在WebView2之前,有个类似的项目叫CefSharp,但是它的坑比较多,性能没有WebView2好。 接下去试一下js调用C#。 查了一下资料,WebView2提供了比较丰富的API,要想实现js调用C#,需要用到CoreWebView2.AddHostObjectToScript,这是微软的官方地址: CoreWebView2.AddHostObjectToScript(String, Object) Method (Microsoft.Web.WebView2.Core) | Microsoft Learn
官网没有翻译成中文,看样子似乎是要把这个实例插入到什么地方,然后就可以在JS里面调用了。 由于我是新手,到这里就卡住了,搜了一下国内的资料,发现只有两三篇文章抄来抄去,而且大佬们的文章也把注入方法省略了。 已经解决,翻国外资料找到答案了。 用户8262207573577