將 WebView2 控制項內嵌在應用程式中,可讓您的應用程式透過透過 WebView2 類別或介面提供的方法和屬性,存取各種瀏覽器功能。
WebView2 有數百個 API 可提供廣泛的功能,範圍從增強應用程式的原生平台功能到讓應用程式能夠修改瀏覽器體驗。 本文提供 WebView2 API 的高階群組,以協助您瞭解使用 WebView2 可以執行的不同動作。
詳細內容:
- 頂層功能區域概觀
- 主要類別:環境、控制器和核心
- Web/原生 Interop
- 瀏覽器功能
- 處理程序管理
- 啟用 WebView2 背景工作 API (背景處理和離線支援)
- 瀏覽至頁面並管理載入的內容
- iframe
- 驗證
- 在非架構應用程式中轉譯 WebView2
- 使用組合轉譯 WebView2
- 環境選項
- 效能和偵錯
- Chrome 開發工具通訊協定 (CDP)
- 另請參閱
頂層功能區域概觀
主控 WebView2 控制項時,您的應用程式可以存取下列功能和 API:
| 功能範圍 | 用途 |
|---|---|
| 主要類別:環境、控制器和核心 |
CoreWebView2Environment (CoreWebView2ControllerCoreWebView2 或對等介面) 一起運作,讓您的應用程式可以裝載 WebView2 瀏覽器控制項並存取其瀏覽器功能。 這些大型類別會公開各種 API,您的主應用程式可以存取這些 API,以便為您的使用者提供下列類別的瀏覽器相關功能。 |
| Web/原生 Interop | 將網頁內容內嵌至原生應用程式。 使用簡單的訊息、JavaScript 程式碼和原生物件,在原生程式碼與 Web 程式碼之間進行通訊。 |
| 瀏覽器功能 | WebView2 控制項可讓應用程式存取許多瀏覽器功能。 您可以修改這些瀏覽器功能,並加以開啟或關閉。 |
| 處理程序管理 | 取得執行 WebView2 處理序、結束處理序和失敗處理序的相關資訊,讓您的應用程式可以採取相應的動作。 |
| 瀏覽至頁面並管理載入的內容 | 管理網頁瀏覽和管理網頁中載入的內容。 |
| iframe | 將其他網頁內嵌至您自己的網頁。 偵測內嵌網頁何時建立、偵測內嵌網頁瀏覽時,以及選擇性地略過 X 框架選項。 |
| 驗證 | 您的應用程式可以使用 WebView2 控制項處理基本驗證。 基本驗證 是一種特定的驗證方法,屬於 HTTP 通訊協定的一部分。 |
| 在非架構應用程式中轉譯 WebView2 | 如果您的主應用程式不使用 UI 架構,請使用這些 API 來設定 WebView2 轉譯系統。 此轉譯設定控制 WebView2 如何將輸出轉譯到您的主機應用程式,以及 WebView2 如何處理輸入、焦點和協助工具。 |
| 使用組合轉譯 WebView2 | 針對以組合為基礎的 WebView2 轉譯,請使用來 CoreWebView2Environment 建立 CoreWebView2CompositionController。
CoreWebView2CompositionController 提供與 CoreWebView2Controller相同的 API,但也包含用於組合式轉譯的 API。 |
| 環境選項 |
使用者資料: 管理 [使用者資料] 資料夾 (UDF) ,這是使用者電腦上的資料夾。 UDF 包含與主機應用程式和 WebView2 相關的資料。 WebView2 應用程式使用使用者資料資料夾來儲存瀏覽器資料,例如 Cookie、權限和快取資源。 在單一 UDF 下管理多個設定檔。 執行階段選擇 支援發行前測試和自我裝載。 您可以指定瀏覽器預覽通道的搜尋順序,並指定要搜尋哪些瀏覽器預覽通道。 |
| 效能和偵錯 | 分析和偵錯效能、處理效能相關事件,以及管理記憶體使用量,以提高應用程式的回應能力。 |
| Chrome 開發工具通訊協定 (CDP) | 檢測、檢查、偵錯和分析基於 Chromium 的瀏覽器。 Chrome 開發工具通訊協定 (CDP) 是 Microsoft Edge 開發工具的基礎。 針對未在 WebView2 平台中實作的功能,使用 Chrome DevTools 通訊協定。 |
此頁面僅列出發行 SDK 中的 API;它不會列出發行 SDK 中尚未提供的實驗性 API 或穩定 API。 如需包括實驗性 API 在內的完整 API 清單,請參閱 WebView2 版本資訊。
主要類別:環境、控制器和核心
CoreWebView2Environment (CoreWebView2ControllerCoreWebView2 或對等介面) 一起運作,讓您的應用程式可以裝載 WebView2 瀏覽器控制項並存取其瀏覽器功能。 這三個大型類別公開了主應用程式可以存取的各種 API,以便為使用者提供許多類別的瀏覽器相關功能。
類別代表
CoreWebView2Environment一組 WebView2 控制項,這些控制項共用相同的 WebView2 瀏覽器程序、使用者資料資料夾和轉譯器程序。 從本CoreWebView2Environment類別中,您可以建立 和CoreWebView2實例對CoreWebView2Controller。CoreWebView2Controller類別負責主機相關的功能,例如視窗焦點、可見度、大小和輸入,您的應用程式在其中託管 WebView2 控制項。CoreWebView2該類別用於 WebView2 控制項的 Web 特定部分,包括網路、導航、指令碼,以及剖析和轉譯 HTML。
另請參閱:
Web/原生 Interop
Microsoft Edge WebView2 控制項可讓您將 Web 內容內嵌至原生應用程式。 您可以使用簡單的訊息、JavaScript 程式碼和原生物件,在原生程式碼與 Web 程式碼之間進行通訊。 以下是 Web 與原生程式碼之間通訊的主要 API。
Web/原生 Interop 的常見使用案例:
- 瀏覽至其他網站之後,更新原生主機視窗標題。
- 從 Web 應用程式傳送原生相機物件並使用其方法。
- 在應用程式的網頁端執行專用的 JavaScript 檔案。
另請參閱:
- 原生程式碼與 Web 程式碼的互通性
- 從原生端程式碼呼叫 Web 端程式碼
- 從網頁端程式碼呼叫原生端程式碼
- 從網頁端程式碼呼叫原生端 WinRT 程式碼
-
WebView2 中的 JavaScript API for
window.chrome.webviewJavaScript API
主機/Web 物件共用
WebView2 可讓原生程式碼中定義的物件傳遞至應用程式的 Web 端程式碼。 主物件 是您選擇要傳遞給應用程式網頁端程式碼的原生程式碼中定義的任何物件。
您可以將主物件投影到 JavaScript 中,以便呼叫原生物件方法 (或從應用程式的 Web 端程式碼) 的其他 API。 例如,您的應用程式可以呼叫這類 API,這是您應用程式網頁端使用者互動的結果。 如此一來,您就不需要在網頁端程式碼中重新實作原生物件的 API,例如方法或屬性。
-
CoreWebView2類別: -
CoreWebView2Settings類別:
指令碼執行
允許主應用程式在 WebView2 控制項內的網頁內容中新增 JavaScript 程式碼。
-
CoreWebView2類別: - CoreWebView2ExecuteScriptResult 類別
-
CoreWebView2Frame類別: - CoreWebView2ScriptException 類別
-
CoreWebView2Settings類別:
Web 訊息
您的應用程式可以傳送訊息至 WebView2 控制項內的 Web 內容,並接收來自該 Web 內容的訊息。 訊息會以字串或 JSON 物件傳送。
您可以選擇性地張貼和接收 DOM 物件以及訊息 additionalObjectsPostWebMessageAsJson ,方法是透過 (.NET 參數、WinRT) 或透過 Win32) (PostWebMessageAsJsonWithAdditionalObjects 。 WebView2 CoreWebView2FileSystemHandle 類別代表 DOM FileSystemHandle,並 CoreWebView2File 代表 DOM File。 另請參閱 chrome.webview.postMessageWithAdditionalObjects JavaScript 參考。
CoreWebView2類別:CoreWebView2Frame類別:CoreWebView2Settings類別:CoreWebView2Environment類別:CoreWebView2FileSystemHandle類別:CoreWebView2FileSystemHandleKind 列舉
FileDirectory
CoreWebView2FileSystemHandlePermission Enum
ReadOnlyReadWrite
指令碼對話方塊
裝載 WebView2 時,您的應用程式可以管理不同的 JavaScript 對話方塊、隱藏它們或以自訂對話方塊取代它們。
共用緩衝區
SharedBuffer API 支援根據作業系統的共用記憶體,在 WebView2 主機應用程式處理程序與 WebView2 轉譯器處理程序之間共用緩衝區。
另請參閱:
-
CoreWebView2類別: -
CoreWebView2Environment類別: -
CoreWebView2Frame類別: - CoreWebView2SharedBuffer 類別
-
CoreWebView2SharedBufferAccess 列舉
ReadOnlyReadWrite
瀏覽器功能
WebView2 控制項可讓應用程式存取許多瀏覽器功能。 您可以修改這些瀏覽器功能,並加以開啟或關閉。
列印
您可以設定自訂列印設定,將網頁列印到印表機、PDF 檔案或 PDF 串流。
另請參閱:
-
CoreWebView2類別: -
CoreWebView2Environment類別: - CoreWebView2PrintSettings 類別
- CoreWebView2PrintDialogKind 列舉
- CoreWebView2PrintStatus 列舉
Cookie
您可以在 WebView2 中使用 Cookie 來管理使用者工作階段、儲存使用者個人化喜好設定,以及追蹤使用者行為。
另請參閱:
-
CoreWebView2類別: - CoreWebView2Cookie 類別
- CoreWebView2CookieManager 類別
-
CoreWebView2Profile類別:
影像擷取
藉由託管 WebView2,您的應用程式可以擷取螢幕擷取畫面,並指出要使用哪種格式儲存影像。
-
CoreWebView2類別:
控制是否顯示螢幕擷取 UI
ScreenCaptureStarting每當對應至 CoreWebView2Frame (或其任何其子系 iframe 的 WebView2 和/或 iframe) 要求權限以在顯示 UI 之前使用螢幕Capture API 時,就會引發事件。 然後,應用程式可以封鎖顯示 UI,或允許顯示 UI。
CoreWebView2類別:CoreWebView2Frame類別:CoreWebView2NonClientRegionKind列舉:
Find
Find API 可讓您以程式設計方式控制 [尋找] 作業,並可讓您將下列功能新增至您的應用程式:
- 自訂尋找選項,包括尋找字詞、區分大小寫、Word 比對、比對醒目提示和預設 UI 隱藏。
- 尋找文字字串,並在 WebView2 控制項內瀏覽文字字串。
- 以程式設計方式啟動 [尋找] 作業,然後瀏覽 尋找 結果。
- 隱藏預設 的 [尋找 UI]。
- 追蹤 尋找 作業的狀態。
PDF 文件的尋找 API 有已知問題。 當您在 WebView2 控制項中檢視 PDF 文件時,[ 尋找 ] 功能目前僅提供第一個索引和找到的相符項目數。 例如,如果字串在 PDF 中出現三次,UI 會顯示 1/3 ,並且不支援以程式設計方式呼叫 Next 或 Previous。
我們正在積極調查這些問題,並鼓勵您使用 WebView2Feedback 存放庫回報所遇到的任何問題。
CoreWebView2類別:CoreWebView2Environment類別:
下載
您的應用程式可以在 WebView2 中管理下載體驗。 您的應用程式可以:
- 根據不同的中繼資料允許或封鎖下載。
- 變更下載位置。
- 設定自訂下載 UI。
- 自訂預設 UI。
一般:
-
CoreWebView2類別:
修改預設體驗:
-
CoreWebView2類別: -
CoreWebView2Profile類別:
自訂下載體驗:
另存新檔
另存新檔 API 可讓您以程式設計方式執行 另存新檔 作業。 您可以使用這些 API 來封鎖預設的 [另存新檔] 對話方塊,然後以無訊息方式儲存,或針對 [另存新檔] 建立您自己的 UI。 這些 API 只與 [另存新檔] 對話方塊有關,而不與使用 下載 API 的 [ 下載 ] 對話方塊有關。
CoreWebView2類別:-
CompleteDefaultHtmlOnlySingleFile
CoreWebView2SaveAsUIResult Enum
CancelledFileAlreadyExistsInvalidPathKindNotSupportedSuccess
CoreWebView2SaveAsUIShowingEventArgs 類別
- CoreWebView2SaveAsUIShowingEventArgs.AllowReplace 屬性
- CoreWebView2SaveAsUIShowingEventArgs.Cancel 屬性
- CoreWebView2SaveAsUIShowingEventArgs.ContentMimeType 屬性
- CoreWebView2SaveAsUIShowingEventArgs.Kind 屬性
- CoreWebView2SaveAsUIShowingEventArgs.SaveAsFilePath 屬性
- CoreWebView2SaveAsUIShowingEventArgs.SuppressDefaultDialog 屬性
- CoreWebView2SaveAsUIShowingEventArgs.GetDeferral 方法
設定儲存檔案時的安全性警告
藉由接聽 SaveFileSecurityCheckStarting 事件,您的應用程式可以在此事件上註冊處理常式,以取得檔案路徑、副檔名和文件來源 URI 資訊。 然後,您可以套用自己的規則來執行下列動作:
- 允許儲存檔案,而不呈現有關檔案類型原則的預設安全性警告 UI。
- 取消儲存。
- 建立您自己的 UI 來管理執行階段檔案類型原則。
CoreWebView2類別:CoreWebView2SaveFileSecurityCheckStartingEventArgs 類別
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.CancelSave 屬性
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.DocumentOriginUri 屬性
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FileExtension 屬性
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FilePath 屬性
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.SuppressDefaultPolicy 屬性
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.GetDeferral 方法
Web 通知處理
Web 通知 API 支援非持續性通知。
NotificationReceived控制項 Web 通知處理的CoreWebView2事件,允許主應用程式自訂或隱藏。 未處理的通知預設為 WebView2 的 UI。
CoreWebView2類別:-
- CoreWebView2Notification.BadgeUri 屬性
- CoreWebView2Notification.Body 屬性
- CoreWebView2Notification.BodyImageUri 屬性
- CoreWebView2Notification.Direction 屬性
- CoreWebView2Notification.IconUri 屬性
- CoreWebView2Notification.IsSilent 屬性
- CoreWebView2Notification.Language 屬性
- CoreWebView2Notification.RequiresInteraction 屬性
- CoreWebView2Notification.ShouldRenotify 屬性
- CoreWebView2Notification.Tag 屬性
- CoreWebView2Notification.Timestamp 屬性
- CoreWebView2Notification.Title 屬性
- CoreWebView2Notification.VibrationPattern 屬性
- CoreWebView2Notification.ReportClicked 方法
- CoreWebView2Notification.ReportClosed 方法
- CoreWebView2Notification.ReportShown 方法
- CoreWebView2Notification.CloseRequested 事件
CoreWebView2TextDirectionKind 列舉
DefaultLeftToRightRightToLeft
權限
不同的網頁可能會要求您獲取存取某些特權資源的權限,例如地理位置感測器、相機和麥克風。 您的主應用程式可以程式設計方式回應權限要求,並能以自己的 UI 取代預設權限 UI。
-
CoreWebView2類別: -
CoreWebView2Frame類別: - CoreWebView2PermissionKind 列舉
-
CoreWebView2PermissionRequestedEventArgs類別: - CoreWebView2PermissionSetting 類別
-
CoreWebView2Profile類別:
快顯功能表
WebView2 控制項提供預設操作功能表 (快顯功能表) 您可以在其中自訂或停用,也可以建立自己的操作功能表。
另請參閱:
-
CoreWebView2類別: - CoreWebView2ContextMenuItem 類別
- CoreWebView2ContextMenuRequestedEventArgs 類別
- CoreWebView2CoNtextMenuTarget 類別
-
CoreWebView2Environment類別: -
CoreWebView2Settings類別:
狀態列
狀態列位於頁面左下角,顯示網頁的顯示狀態。 在 WebView2 中,您可以啟用/停用狀態列、取得狀態列中的文字,以及查看狀態列文字何時已變更。
-
CoreWebView2類別: -
CoreWebView2Settings類別:
Fluent 重疊捲軸
使用 Microsoft Fluent 設計將捲軸風格化,並讓捲軸與網頁內容重疊。 此調適型捲軸設計可適應各種裝置和視窗大小。
若要嘗試使用 Fluent 重疊捲軸,請在 Microsoft Edge 中移至 edge://flags 並輸入 Fluent 重疊捲軸。
另請參閱:
-
WebView2 瀏覽器旗標 -
msEdgeFluentOverlayScrollbar和msOverlayScrollbarWinStyle旗標。
CoreWebView2EnvironmentOptions類別:-
DefaultFluentOverlay
使用者代理程式
使用者代理程式是一個字串,代表使用者表示程式的身分識別,例如瀏覽器名稱。 在 WebView2 中,您可以設定使用者代理程式。
另請參閱:
-
CoreWebView2Settings類別:
自動填滿
您的應用程式可以獨立控制是否要啟用瀏覽器的自動填寫功能,以取得一般資訊或密碼。
-
CoreWebView2Settings類別:
音訊
您的應用程式可以將所有音訊設為靜音和取消靜音,並了解音訊何時播放。
在區域中點擊滑鼠的點擊測試
提供 WebView2 所包含區域的點擊測試結果。 這適用於想要在 WebView2 視窗的非工作區處理滑鼠事件的視覺託管應用程式。
CoreWebView2CompositionController類別:CoreWebView2NonClientRegionChangedEventArgs類別:CoreWebView2NonClientRegionKind 列舉
CaptionClientNowhere
CoreWebView2Settings類別:
撥動手勢瀏覽
藉由主控 WebView2 控制項,您的應用程式可以在啟用觸控輸入的裝置上啟用或停用撥動手勢瀏覽。 這個手勢可讓使用者:
- 向左/向右撥動 (水平撥動) 以瀏覽至瀏覽歷程記錄中的上一頁或下一頁。
- 拉動以重新整理 () 目前頁面垂直撥動。
此功能目前在瀏覽器中預設為停用。 若要在 WebView2 中啟用此功能,請設定 AdditionalBrowserArguments 屬性並指定 --pull-to-refresh 參數。
-
CoreWebView2Settings類別: -
CoreWebView2EnvironmentOptions類別:
啟用或停用瀏覽器回應加速鍵 (快速鍵)
ICoreWebView2AcceleratorKeyPressedEventArgs 有一個 IsBrowserAcceleratorKeyEnabled 屬性,可讓您控制瀏覽器是否處理快速鍵 (快速鍵) ,例如 Ctrl+P 或 F3。
另請參閱:
- 鍵盤加速器,如下所示。
-
CoreWebView2AcceleratorKeyPressedEventArgs類別:
全螢幕
在 WebView2 中,您可以得知 HTML 元素何時進入或離開全螢幕檢視。
PDF 工具列
在瀏覽器 PDF 檢視器中,頂端有一個 PDF 專用工具列。 在 WebView2 中,您可以隱藏 PDF 檢視器工具列中的某些項目。
-
CoreWebView2Settings類別:
佈景主題
在 WebView2 中,您可以將色彩佈景主題自訂為系統、淺色或深色。
-
CoreWebView2Profile類別:
語言
此 Language 屬性會設定 WebView2 的預設顯示語言,以套用至瀏覽器 UI (例如操作功能表和對話方塊) ,以及設定 accept-language WebView2 傳送至網站的 HTTP 標頭。
此 ScriptLocale 屬性可讓主應用程式為所有 Intl JavaScript API 和相依於它的其他 JavaScript API 設定預設地區設定,例如 Intl.DateTimeFormat(),這會影響時間/日期格式的字串格式設定。
-
CoreWebView2EnvironmentOptions類別: -
CoreWebView2ControllerOptions類別:
新視窗
WebView2 提供處理 JavaScript 函數 window.open()的功能。
關閉視窗
WebView2 提供處理 JavaScript 函數 window.close()的功能。
-
CoreWebView2類別: -
CoreWebView2Controller類別:
文件標題
您的應用程式可以偵測目前頂層文件的標題何時已變更。
-
CoreWebView2類別:
網站圖示
在 WebView2 中,您可以設定網站的 網站圖示 ,或在變更時收到通知。
-
CoreWebView2類別:
安全性與隱私權
防止追蹤
防止追蹤可讓主應用程式控制與使用者設定檔相關聯之 WebView2 控制項的防止追蹤層級。
-
CoreWebView2EnvironmentOptions類別: -
CoreWebView2Profile類別: -
CoreWebView2TrackingPreventionLevel 列舉
NoneBasicBalancedStrict
SmartScreen
Microsoft Defender SmartScreen (“SmartScreen”) 預設為啟用。 屬性控制 IsReputationCheckingRequired 是否要啟用 SmartScreen。
如果您未停用 SmartScreen,您必須向所有使用者提供通知,您的軟體包含 Microsoft Defender SmartScreen,並會依 Microsoft 隱私權聲明和 SmartScreen 中的 Microsoft Edge 中的使用者資料和隱私權所揭露之方式收集使用者的資訊,並將之傳送給 Microsoft。
另請參閱:
- WebView2 中資料與隱私權中的 SmartScreen。
-
CoreWebView2Settings類別:
自訂當機報告
如果任何 WebView2 處理序當機,將建立一個或多個迷你傾印檔案,並將檔案傳送至 Microsoft 進行診斷。 使用此 API 可在執行診斷及執行分析時自訂當機報告。
- 若要防止將損毀傾印傳送到 Microsoft,請將屬性設定
IsCustomCrashReportingEnabled為false。 - 若要尋找損毀傾印並使用它們進行自訂,請使用屬性
CrashDumpFolderPath。
另請參閱:
- WebView2 中的 [資料與隱私權] 中的自訂當機報告。
- Minidump Files
-
CoreWebView2EnvironmentOptions類別: -
CoreWebView2Environment類別:
瀏覽器擴充功能
您的應用程式可以內嵌使用 Microsoft Edge 擴充功能的 WebView2 控制項。 Microsoft Edge 擴充功能是一個小型應用程式,開發人員可用來新增或修改 Microsoft Edge 功能,以改善使用者的瀏覽體驗。
另請參閱:
CoreWebView2EnvironmentOptions類別:CoreWebView2Profile類別:
處理程序管理
取得有關執行 WebView2 處理序、結束處理序和失敗處理序的資訊,讓您的應用程式可以採取相應的動作。
-
CoreWebView2類別: - CoreWebView2BrowserProcessExitedEventArgs 類別
-
CoreWebView2Environment類別: - CoreWebView2ProcessFailedEventArgs 類別
- CoreWebView2ProcessFailedKind 列舉
- CoreWebView2ProcessFailedReason 列舉
- CoreWebView2ProcessInfo 類別
框架處理資訊
框架處理資訊 API,包括 GetProcessExtendedInfos,提供在相關聯轉譯器處理程序中主動執行的所有框架的快照集合。 此 API 可讓您的應用程式偵測 WebView2 的哪一部分正在耗用資源,例如記憶體或 CPU 使用量。
CoreWebView2Environment類別:CoreWebView2ProcessExtendedInfo類別:CoreWebView2類別:CoreWebView2Frame類別:CoreWebView2FrameInfo類別:
啟用背景處理和離線支援 (WebView2 背景工作 API)
WebView2 Worker API 可讓主應用程式與 Web Worker 互動,以從主執行緒卸載工作、改善回應能力,並支援背景作業。 這些 Web Worker 包括專用 Worker、共用 Worker 和服務 Worker。
這些 API 提供:
- 生命週期事件: 監視工作者的建立和毀滅。
-
傳訊介面: 與
PostMessage使用 和WebMessageReceived進行通訊;具體而言:CoreWebView2ServiceWorker.PostWebMessageAsJsonCoreWebView2ServiceWorker.PostWebMessageAsStringCoreWebView2DedicatedWorker.PostWebMessageAsJsonCoreWebView2DedicatedWorker.PostWebMessageAsStringCoreWebView2ServiceWorker.WebMessageReceivedCoreWebView2DedicatedWorker.WebMessageReceivedchrome.webview.postMessage- 不是:
chrome.webview.postMessageWithAdditionalObjects
- 背景工作者管理: 查詢和擷取背景工作註冊和執行個體。
-
CoreWebView2類別:
-
CoreWebView2Frame類別:
-
CoreWebView2Profile類別:
-
CoreWebView2ServiceWorkerRegistration 類別
- CoreWebView2ServiceWorkerRegistration.ActiveServiceWorker 屬性
- CoreWebView2ServiceWorkerRegistration.Origin 屬性
- CoreWebView2ServiceWorkerRegistration.ScopeUri 屬性
- CoreWebView2ServiceWorkerRegistration.ServiceWorkerActivated 事件
- CoreWebView2ServiceWorkerRegistration.TopLevelOrigin 屬性
- CoreWebView2ServiceWorkerRegistration.Unregistering 事件
瀏覽至頁面並管理載入的內容
透過 WebView2 控制項,您的應用程式可以管理網頁瀏覽,以及管理網頁中載入的內容。
管理載入到 WebView2 的內容
這些 API 會載入、停止載入,以及重新載入內容至 WebView2。 載入的內容可以是:
- URL 中的內容。
- HTML 的字串。
- 透過虛擬主機名稱到本機資料夾對應的本機內容。
- 來自建構網路要求的內容。
另請參閱:
-
CoreWebView2類別: -
CoreWebView2Settings類別:
瀏覽歷程記錄
歷程記錄方法允許在 WebView2 中來回和向前瀏覽,而歷程記錄事件則提供歷程記錄和 WebView2 目前來源中變更的相關資訊。
瀏覽種類
NavigationKind 取得每個瀏覽的瀏覽類型,例如返回/前進、重新載入或瀏覽到新文件。
-
CoreWebView2NavigationStartingEventArgs類別: - CoreWebView2NavigationKind 列舉
封鎖不想要的瀏覽
NavigationStarting此事件允許應用程式取消瀏覽至 WebView2 中的指定 URL,包括框架。
-
CoreWebView2類別:- CoreWebView2.NavigationStarting 事件
-
CoreWebView2.FrameNavigationStarting Event - 已取代;改為使用
CoreWebView2Frame.NavigationStarting
-
CoreWebView2Frame類別: - CoreWebView2NavigationStartingEventArgs 類別
瀏覽事件
有了 NavigationStarting 和其他瀏覽事件,就可以通知應用程式 WebView2 中的瀏覽狀態。
瀏覽是載入新 URL 的流程。
另請參閱:
-
CoreWebView2類別:- CoreWebView2.ContentLoading 事件
- CoreWebView2.DOMContentLoaded 事件
-
CoreWebView2.FrameNavigationCompleted 事件 - 已取代;請改用
CoreWebView2Frame.NavigationCompleted。 - CoreWebView2.NavigationCompleted 事件
- CoreWebView2ContentLoadingEventArgs 類別
- CoreWebView2DOMContentLoadedEventArgs 類別
-
CoreWebView2Frame類別: - CoreWebView2NavigationCompletedEventArgs 類別
在 WebView2 中管理網路要求
WebResourceRequested此事件會允許應用程式攔截並覆寫 WebView2 中的所有網路要求。
WebResourceResponseReceived此事件可讓應用程式監視傳送至的要求,以及從網路接收到的回應。
另請參閱:
CoreWebView2類別:
自訂配置註冊
允許 CustomSchemeRegistration 在 WebView2 中註冊自訂配置,以便應用程式可以處理 WebResourceRequested 對這些自訂配置 URL 的要求事件,並將 WebView2 瀏覽到此類 URL。
- CoreWebView2CustomSchemeRegistration 類別
-
CoreWebView2EnvironmentOptions類別:
用戶端憑證
在 WebView2 中,您可以使用用戶端憑證 API 在應用程式層級選取用戶端憑證。 此 API 可讓您:
- 如果需要,可以向使用者顯示 UI。
- 取代預設用戶端憑證對話方塊提示。
- 以程式設計方式查詢憑證。
- 當 WebView2 向需要用戶端憑證進行 HTTP 驗證的 HTTP 伺服器提出要求時,從清單中選取要回應伺服器的憑證。
伺服器憑證
在 WebView2 中,您可以使用伺服器憑證 API,在應用程式層級信任伺服器的 TLS 憑證。 如此一來,您的主應用程式就可以轉譯頁面,而不會提示使用者有關 TLS 錯誤,或者您的主應用程式可以自動取消要求。
啟動外部 URI 配置
啟動已向作業系統登錄的 URI 配置。
-
CoreWebView2類別: -
CoreWebView2LaunchingExternalUriSchemeEventArgs 類別
- CoreWebView2LaunchingExternalUriSchemeEventArgs.Cancel 屬性
- CoreWebView2LaunchingExternalUriSchemeEventArgs.InitiatingOrigin 屬性
- CoreWebView2LaunchingExternalUriSchemeEventArgs.IsUserInitiated 屬性
- CoreWebView2LaunchingExternalUriSchemeEventArgs.Uri 屬性
- CoreWebView2LaunchingExternalUriSchemeEventArgs.GetDeferral 方法
iframe
iframe 可讓您將其他網頁內嵌至您自己的網頁。 在 WebView2 中,您可以:
- 了解 iframe 的建立時間。
- 瞭解 iframe 何時進行導覽。
- 允許略過 x 框架選項。
另請參閱:
- 主機/Web 物件共用,高於
- 在 WebView2 應用程式中使用框架
- 在 WebView2 SDK 的封存版本資訊中 (FrameCreatedEvent API) 追蹤巢狀 iframe 的瀏覽歷程記錄。
驗證
您的應用程式可以使用 WebView2 控制項處理基本驗證。 基本驗證 是一種特定的驗證方法,屬於 HTTP 通訊協定的一部分。
另請參閱:
在非架構應用程式中轉譯 WebView2
如果您的主應用程式不使用 UI 架構,請使用這些 API 來設定 WebView2 轉譯系統。 此轉譯設定控制 WebView2 如何將輸出轉譯到您的主機應用程式,以及 WebView2 如何處理輸入、焦點和協助工具。
何時使用這些 API
UI 架構 - 如果您針對應用程式使用 UI 架構,您應該使用該 UI 架構提供的 WebView2 元素,而不是使用這些 API。
沒有 UI 架構,且未使用 組合 - 如果您沒有針對應用程式使用 UI 架構 (例如,如果您直接使用純 Win32) ,或如果您的 UI 架構沒有 WebView2 元素,則您必須使用本節中的這些 API 來建立
CoreWebView2Controller它並轉譯到您的應用程式中。沒有 UI 架構,且使用組合 - 如果您的應用程式 UI 是使用 DirectComposition 或 Windows.UI.Composition 建置,您應該使用
CoreWebView2CompositionController而不是使用這些 API;請參閱下方的 使用 Composition 轉譯 WebView2。
-
CoreWebView2Controller類別: -
CoreWebView2Environment類別:
大小、位置和可見度
CoreWebView2Controller 帶一個父母 HWND。 屬性會 Bounds 相對於父項 HWND調整 WebView2 的大小和位置。 您可以使用 來切換 IsVisibleWebView2 的可見度。
-
CoreWebView2Controller類別:
縮放
WebView2 ZoomFactor 僅用於縮放視窗的 Web 內容。 當使用者在旋轉滑鼠滾輪的同時按 Ctrl 縮放內容時,也會更新 UI 縮放比例。
-
CoreWebView2Controller類別: -
CoreWebView2Settings類別:
點陣化縮放
RasterizationScale API 會調整所有 WebView2 的大小,包括操作功能表、工具提示和快顯視窗。 應用程式可以設定 WebView2 是否應偵測監視器縮放變更並自動更新 RasterizationScale。
BoundsMode 用來設定 Bounds 屬性是否解譯為原始像素,或是需要按) 縮 RasterizationScale 放的 DIP (。
焦點和 Tab 鍵
WebView2 控制項會引發事件,讓應用程式知道控制項何時取得焦點或失去焦點。 針對按 Tab 鍵 (按 Tab 鍵) ,有一個 API 可將焦點移至 WebView2,以及 WebView2 要求應用程式收回焦點的事件。
父視窗
WebView2 可以重新父系至不同的父視窗控點 (HWND) 。 當應用程式在螢幕上的位置變更時,WebView2 也需要收到通知。
-
CoreWebview2Controller類別:
鍵盤加速器
當 WebView2 具有焦點時,它會直接接收使用者的輸入。 應用程式可能會想要攔截並處理 (快速鍵) 的特定加速鍵組合,或停用一般瀏覽器加速鍵行為。
另請參閱 啟用 或停用瀏覽器回應加速鍵 (快速鍵) ,。
- CoreWebView2AcceleratorKeyPressedEventArgs 類別
-
CoreWebView2Controller類別: -
CoreWebView2Settings類別:
預設背景色彩
WebView2 可以指定預設背景色彩。 色彩可以是任何不透明色彩或透明色。 如果 HTML 網頁未設定自己的背景色彩,就會使用此色彩。
另請參閱:
- 在 WebView2 SDK 的封存版本資訊中設定 WebView2 初始化時的預設背景色彩 (DefaultBackgroundColor API) 。
CoreWebView2Controller類別:CoreWebView2ControllerOptions類別:
使用組合轉譯 WebView2
針對以組合為基礎的 WebView2 轉譯,請使用來 CoreWebView2Environment 建立 CoreWebView2CompositionController。
CoreWebView2CompositionController 提供與 CoreWebView2Controller相同的 API,但也包含用於組合式轉譯的 API。
- CoreWebView2CompositionController 類別
-
CoreWebView2Environment類別:
連線至可視化樹狀結構
WebView2 可以將其組合樹狀結構連線至 IDCompositionVisual、 IDCompositionTarget 或 Windows::UI::Composition::ContainerVisual。
-
CoreWebView2CompositionController類別:
轉寄輸入
應用程式會接收滑鼠、觸控、手寫筆) (空間輸入,且必須傳送到 WebView2。 WebView2 會在應根據滑鼠位置更新游標時通知應用程式。
-
CoreWebView2CompositionController類別: -
CoreWebView2Environment類別: - CoreWebView2PointerInfo 類別
允許輸入事件訊息通過瀏覽器視窗
允許使用者輸入事件訊息 (鍵盤、滑鼠、觸控或手寫筆) 透過瀏覽器視窗,由應用程式處理視窗接收。
-
CoreWebView2ControllerOptions類別:
拖放
預設支援從 WebView2 控制項拖曳到另一個應用程式。 不過,拖曳 到 WebView2 控制項需要當主應用程式從系統接收 IDropTarget 事件時,主應用程式必須將事件轉寄到 WebView2 控制項。 拖曳到 WebView2 控制項包括完全在 WebView2 控制項內的拖放作業。
使用下列 API 將事件從系統轉寄 IDropTarget 至 WebView2 控制項。
-
CoreWebView2CompositionController類別:
協助工具
根據預設,WebView2 會以 Win32/C++ 應用程式的父 HWND 子系的形式顯示在協助工具樹狀結構中。 WebView2 提供 API,以相對於應用程式中的其他元素,更佳地定位 WebView2 內容。
環境選項
使用者資料
管理 UDF) ([使用者資料] 資料夾,這是使用者電腦上的資料夾。 UDF 包含與主機應用程式和 WebView2 相關的資料。 WebView2 應用程式使用使用者資料資料夾來儲存瀏覽器資料,例如 Cookie、權限和快取資源。
另請參閱:
-
CoreWebView2Environment類別: -
CoreWebView2EnvironmentOptions類別:
清除瀏覽資料:
-
CoreWebView2Profile類別: - CoreWebView2BrowsingDataKinds 列舉
多個設定檔
在單一使用者資料資料夾下管理多個設定檔。
另請參閱:
建立定義設定檔的選項物件:
-
CoreWebView2Environment類別: - CoreWebView2ControllerOptions 類別
建立使用設定檔的 WebView2 控制項:
-
CoreWebView2Environment類別:
存取及操作設定檔:
-
CoreWebView2類別: - CoreWebView2Profile 類別
刪除設定檔
您的應用程式可以刪除 WebView2 網頁瀏覽器控制項的使用者設定檔。
另請參閱:
-
CoreWebView2Profile類別:
執行階段選取項目
執行階段選擇支援發行前測試和自我裝載。 建立 WebView2 環境時:
- 若要指定瀏覽器預覽通道的搜尋順序,請使用屬性
CoreWebView2EnvironmentOptions.ChannelSearchKind。 - 若要指定搜尋哪些瀏覽器預覽通道,請使用屬性
CoreWebView2EnvironmentOptions.ReleaseChannels。
另請參閱:
CoreWebView2EnvironmentOptions類別:CoreWebView2ChannelSearchKind 列舉
MostStableLeastStable
CoreWebView2ReleaseChannels 列舉
NoneStableBetaDevCanary
效能和偵錯
分析和偵錯效能、處理效能相關事件,以及管理記憶體使用量,以提高應用程式的回應能力。
記憶體使用量目標
指定記憶體耗用量層級,例如 low 或 normal。
Chrome 開發工具通訊協定 (CDP)
CDP) 的 Chrome 開發工具通訊協定 (提供 API 來檢測、檢查、偵錯和分析基於 Chromium 的瀏覽器。 Chrome 開發工具通訊協定是 Microsoft Edge 開發工具的基礎。 針對未在 WebView2 平台中實作的功能,使用 Chrome DevTools 通訊協定。
另請參閱:
開啟:
-
CoreWebView2Settings類別: -
CoreWebView2類別:
通話:
-
CoreWebView2類別:
接收器:
另請參閱
- Microsoft Edge WebView2 簡介
- WebView2 API 參考 - 其他平台和語言的 API 參考連結,例如 WinRT/C++ (COM) 。