超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WebView2 在 Windows Forms 應(yīng)用程序中的實踐

admin
2025年3月8日 14:39 本文熱度 986

在現(xiàn)代桌面應(yīng)用開發(fā)中,WebView2控件為開發(fā)者提供了一種將Web技術(shù)無縫集成到Windows應(yīng)用程序的強大方式。微軟的WebView2基于Chromium內(nèi)核,為開發(fā)者提供了極其靈活的跨平臺Web內(nèi)容展示解決方案,用這個方案完全可以做上位機開發(fā),結(jié)合Web的靈活性,與Winform的穩(wěn)定性。

代碼解析

命名空間引入

using System;
using System.Windows.Forms;
using Microsoft.Web.WebView2.Core;

關(guān)鍵命名空間:

  • System.Windows.Forms
    :提供Windows窗體基礎(chǔ)
  • Microsoft.Web.WebView2.Core
    :WebView2核心功能

完整代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Web.WebView2.Core;

namespace AppWebView2
{
    public partial class Form5 : Form
    {
        public Form5()
        
{
            InitializeComponent();
            InitializeWebView();
        }

        private async void InitializeWebView()
        
{

            await webView21.EnsureCoreWebView2Async(null);

            // 設(shè)置虛擬主機映射  
            webView21.CoreWebView2.SetVirtualHostNameToFolderMapping(
                "app.local",
                Path.Combine(Application.StartupPath, "dist"),
                CoreWebView2HostResourceAccessKind.Allow
            );

            webView21.Source = new Uri("https://app.local/index.html");
        }
    }
}

?

關(guān)鍵技術(shù)點詳解

異步初始化

EnsureCoreWebView2Async(null) 是一個關(guān)鍵的異步方法,確保WebView2運行時正確加載。

虛擬主機映射

SetVirtualHostNameToFolderMapping 方法提供了一種安全的方式將本地文件夾映射到虛擬主機:

  • 第一個參數(shù):虛擬主機名(app.local
  • 第二個參數(shù):本地文件夾路徑
  • 第三個參數(shù):資源訪問權(quán)限

資源加載

使用 https://app.local/index.html 加載本地資源,這是一種安全且靈活的方式。

最佳實踐

目錄結(jié)構(gòu)建議

YourApp/

├── dist/                   # Vue構(gòu)建輸出目錄
│   ├── index.html
│   ├── assets/
│   └── ...

└── YourApp.exe             # 可執(zhí)行文件

注意:dist目錄copy到bin目錄下面。

高級功能

JavaScript交互

C# 調(diào)用 JavaScript:

await webView21.CoreWebView2.ExecuteScriptAsync("console.log('Hello from C#')");

Vue 調(diào)用 C#:

window.chrome.webview.postMessage(JSON.stringify({
  type'action',
  data: { ... }
}));

DevTools支持

webView21.CoreWebView2.OpenDevToolsWindow();

性能與安全

性能優(yōu)化

  • 使用增量構(gòu)建
  • 壓縮靜態(tài)資源
  • 懶加載

安全配置

// 設(shè)置安全策略
webView21.CoreWebView2.Settings.IsScriptEnabled = true;
webView21.CoreWebView2.Settings.AreDefaultScriptDialogsEnabled = true;

禁用右鍵

// 禁用默認(rèn)上下文菜單  
webView21.CoreWebView2.ContextMenuRequested += (sender, args) =>
{
    // 阻止默認(rèn)上下文菜單  
    args.Handled = true;
};

結(jié)論

WebView2為Windows桌面應(yīng)用程序提供了一種現(xiàn)代、高效的Web內(nèi)容集成方案。通過正確配置和使用,可以創(chuàng)建功能強大、性能卓越的混合應(yīng)用程序。

希望這篇詳細(xì)的技術(shù)文章能幫助您深入理解WebView2在Windows Forms中的實踐!


該文章在 2025/3/8 14:39:41 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved