下面分别介绍使用.NET 调用 WebView2、Python 调用 PyWebView 和 Go 调用 WebView 来减少 EXE 体积的方法。
1. 使用 .NET 调用 WebView2WebView2 是一个基于 Chromium 的控件,可在 .NET 应用程序中嵌入 Web 内容。使用 WebView2 可以避免将完整的浏览器内核打包到 EXE 中,从而减少体积。
步骤安装 WebView2 运行时:用户需要在其系统上安装 WebView2 运行时,这样应用程序可以使用系统中已有的浏览器内核。可以从 WebView2 运行时下载页面 下载。创建 .NET 项目并安装 NuGet 包:在 Visual Studio 中创建一个新的 .NET 项目,然后通过 NuGet 包管理器安装 Microsoft.Web.WebView2 包。编写代码:以下是一个简单的示例:```csharpusing Microsoft.Web.WebView2.WinForms;using System;using System.Windows.Forms;namespace WebView2Example{ public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializeWebView2Async(); }
private async void InitializeWebView2Async()
{
await webView21.EnsureCoreWebView2Async(null);
webView21.Source = new Uri("https://www.example.com");
}
} }
4. **发布应用**:使用 Visual Studio 的发布功能发布应用,确保不包含 WebView2 运行时,因为用户系统上需要自行安装。 ### 2. 使用 Python 调用 PyWebView PyWebView 是一个 Python 库,可用于创建跨平台的 GUI 应用程序,它使用系统的原生 Web 引擎来显示 Web 内容。 #### 步骤 1. **安装 PyWebView**:使用 `pip` 安装 PyWebView: ```sh pip install pywebview编写代码:以下是一个简单的示例:```pythonimport webview
def main(): window = webview.create_window('Simple Browser', 'https://www.example.com') webview.start()
if name == 'main': main()
3. **打包应用**:使用 `PyInstaller` 或 `cx_Freeze` 等工具打包应用。例如,使用 `PyInstaller` 打包: ```sh pyinstaller --onefile your_script.py
PyWebView 会使用系统的原生 Web 引擎,因此打包后的 EXE 体积不会包含浏览器内核。
3. 使用 Go 调用 WebViewGo 语言可以使用 webview 库来创建跨平台的 GUI 应用程序,同样使用系统的原生 Web 引擎。
步骤安装 webview 库:使用以下命令安装 webview 库:go get github.com/webview/webview编写代码:以下是一个简单的示例:```gopackage main
import ( "github.com/webview/webview")
func main() { debug := true w := webview.New(debug) defer w.Destroy() w.SetTitle("Simple Browser") w.SetSize(800, 600, webview.HintNone) w.Navigate("https://www.example.com") w.Run()}
3. **构建应用**:使用 `go build` 命令构建应用: ```sh go build -o your_app.exe
由于 webview 库使用系统的原生 Web 引擎,因此构建后的 EXE 体积不会包含浏览器内核。
通过以上方法,可以在不同编程语言中使用 WebView 相关技术来减少 EXE 体积,同时利用系统的原生 Web 引擎来显示 Web 内容。
网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


