與 Microsoft Edge WebView2 互動並影響行為的其中一個方式是傳遞瀏覽器旗標 (引數,或將參數) WebView2。 這些瀏覽器旗標對於測試即將推出的功能及診斷問題很有用。
對於生產應用程式,請勿使用這些旗標。 在開發期間,如果旗標存在,則會導致下面指定的行為。
警告
生產環境中的應用程式不應使用 WebView2 瀏覽器旗標,因為這些旗標可能隨時移除或變更,而且不一定是長期支援。
一般來說,旗標由 Chromium 和 Microsoft Edge 所擁有。 Chromium 旗標不是由 Microsoft Edge 擁有或控制,因此 Microsoft Edge 無法控制何時或如何移除或變更旗標的行為。
您可以在本機裝置環境中設定瀏覽器旗標,或透過程式碼以程式設計方式設定瀏覽器旗標。 下面描述這兩種方法。
在本機裝置環境中設定瀏覽器旗標
若要測試即將推出的功能或診斷問題,建議您透過設定 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 環境變數或透過登錄機碼,在本機裝置環境中使用瀏覽器旗標。 如需詳細資訊,請參閱下列 Win32 API 參考: CreateCoreWebView2EnvironmentWithOptions。
提升權限的應用程式會忽略透過本機裝置環境設定的旗標;請參閱: 針對提升權限的主機應用程式,請在[開發安全的 WebView2 應用程式] 中使用適當的覆寫旗標。
透過程式碼以程式設計方式設定瀏覽器旗標
另一種方法是透過將瀏覽器旗標傳遞為 AdditionalBrowserArguments 的屬性 CoreWebView2EnvironmentOptions,以程式設計方式設定瀏覽器旗標,而不是在本機裝置環境中設定瀏覽器旗標。 如果您以程式設計方式設定瀏覽器旗標,請務必在發佈應用程式之前移除程式碼中的旗標,以避免在生產環境中意外發佈旗標。
提升權限的應用程式會遵循透過程式碼設定的旗標;請參閱: 針對提升權限的主機應用程式,請在[開發安全的 WebView2 應用程式] 中使用適當的覆寫旗標。
-
CoreWebView2EnvironmentOptions類別:
可用的 WebView2 瀏覽器旗標
下列 WebView2 瀏覽器旗標可在開發期間使用。
對於生產應用程式,請勿使用這些旗標。 在開發期間,如果旗標存在,則會導致下面指定的行為。
| 標幟 | 描述 |
|---|---|
accept-lang |
指定 Accept-Language 傳送到伺服器,並透過 Navigator.language DOM 屬性公開給 JavaScript。 格式為 language[-country],其中 language 是來自 ISO-639 的 2 個字母的代碼。 |
allow-file-access-from-files |
允許從其他 file:// URI 讀取 file:// URI。 |
allow-insecure-localhost |
讓 localhost 上的 TLS/SSL 錯誤能夠略過,因此不會進行任何插頁式處理,也不會封鎖任何要求。 |
allow-run-as-system |
根據預設,Edge WebView 瀏覽器會在以系統啟動時結束 (不建議) 以系統啟動。 此旗標會略過該檢查,因此即使 Edge WebView 瀏覽器以系統啟動,Edge WebView 瀏覽器也不會結束。 |
allow-running-insecure-content |
在投射網頁執行階段中啟用不安全的內容。 此旗標會解除封鎖從 HTTP 來源提供內容的 MSP。 |
auto-open-devtools-for-tabs |
讓 Edge WebView 自動開啟每個索引標籤的 [開發工具] 視窗。供開發人員和自動化使用。 |
AutofillReplaceCachedWebElementsByRendererIds |
依轉譯器識別碼取代 AutofillAgent 和 FormTracker 中快取的網頁元素。 |
autoplay-policy |
命令列旗標名稱,以設定自動播放原則。 |
BlockInsecurePrivateNetworkRequests |
啟用此功能之後,會封鎖從位址空間中的 public 非安全內容所啟動的私人網路要求。 |
block-new-web-contents |
取 或 truefalse 值。 如果 true,會讓所有快顯視窗和呼叫 window.open 失敗。 如果 false、快顯視窗和通話 window.open 都會受到尊重。 |
BreakoutBoxPreferCaptureTimestampInVideoFrames |
還原類別屬性CoreWebView2Texture的Timestamp行為,以符合 WebView2 執行階段版本 124 及更早版本的舊版行為。 |
disable-background-timer-throttling |
從背景頁面停用計時器工作的工作節流。 |
disable-domain-action-user-agent-override |
停用 [網域動作] 功能的每個網域使用者代理程式覆寫。 |
disable-gpu |
停用 GPU 硬體加速。 如果軟體轉譯器未就緒,GPU 處理程序就不會啟動。 |
disable-gpu-driver-bug-workarounds |
停用各種 GPU 驅動程式錯誤的因應措施。 |
disable-site-isolation-trials |
停用網站隔離。 |
disable-web-security |
停用跨原始來源原則,而且不強制執行相同來源原則。 僅用於網站測試。 |
disk-cache-size |
強制磁碟快取使用的最大磁碟空間,以位元組為單位。 |
do-not-de-elevate |
防止在啟動時降低 WebView2 的權限。 降壓後使用,防止無限循環。 |
edge-webview-debugging-script |
非同步執行 PostWebMessage 指令碼。 |
edge-webview-disable-interactive-dragging |
停用指標事件和焦點事件,避免在具有 --app-region: drag 屬性的元素上發生。 如果未設定此標幟,拖曳元素預設為互動式。 |
edge-webview-enable-mojo-ipcz |
為使用 WebView2 的應用程式啟用 MojoIpcz (mojo-ipcz) 。 |
edge-webview-force-personal-context |
強制 Edge WebView 瀏覽器處理程序在 WIP 個人內容中執行。 |
edge-webview-foreground-boost-opt-in |
選擇加入前景提升。 |
edge-webview-foreground-boost-opt-out |
退出前景提升。 |
edge-webview-interactive-dragging |
讓指標事件和焦點事件發生在具有 --app-region: drag 屬性的元素上。 拖曳元素預設為互動式。 |
edge-webview-is-background |
表示 WebView 是在背景中啟動。 |
edge-webview-no-dpi-workaround |
停用「DPI 感知應用程式相容性填充程式」解決方法,其透過殼層啟動 Edge WebView 瀏覽器處理程序,使得處理程序不會繼承「應用程式相容」填充程式。 |
edge-webview-run-with-package-id |
針對橋接傳統型應用程式,使用套件身分識別 (套件識別碼) 執行 WebView 處理程序。 |
edge-webview-run-without-package-id |
執行 WebView 處理程序,而不需要套件身分識別 (套件識別碼) 橋接桌面應用程式。 |
edge-webview-unique-window-class |
自動附加從用戶端模組檔案名稱衍生的尾碼,而不包含路徑或副檔名詳細資料,讓 WebView2 註冊模組特定的視窗類別。 例如,對於檔案名稱 EmbeddedBrowserWebView.dll,後綴 附加EmbeddedBrowserWebViewChrome_WidgetWin_0到 ,Chrome_WidgetWin_0_EmbeddedBrowserWebView形成 。 啟用此旗標,以避免當不同版本的 WebView2 與 Chromium Embedded Framework (CEF) 共存於同一進程中,並嘗試與共用相同類別的視窗互動時可能發生當機。 |
embedded-browser-webview-dpi-awareness |
設定伺服器端處理程序的 DPI 感知層級。 |
enable-aggressive-domstorage-flushing |
啟用 DOM 儲存空間的積極排清,以將資料遺失降至最低。 |
enable-blink-features |
enable-blink-features=DragAndDropJSFileObjects可讓您將 JavaScript 建構的File物件從 WebView2 控制項拖曳至原生 Windows 應用程式,以及以 Chromium 瀏覽器引擎為基礎的其他應用程式。 目前僅限於影像 MIME 類型。 如果沒有此旗標,則會捨棄檔案位元組,且只會以純文字形式傳遞檔案名稱。 透過此路徑傳遞的 Files 不會收到 Mark Web 標記。 |
enable-experimental-web-platform-features |
啟用開發中的 Web 平台功能。 |
enable-logging |
啟用錯誤層級的記錄。 |
force-color-profile |
強制將所有監視器視為具有指定的色彩設定檔。 有效值: srgb, generic-rgb。 |
force-device-scale-factor |
覆寫 Edge WebView 瀏覽器 UI 和內容的裝置縮放因數。 |
force-fieldtrials |
可用於在本地測試變更時強制進行現場試驗。 引數是名稱/值組的清單,以斜線分隔。 如果試用名稱前面加上星號,則該試用版將會開始啟用。 範例: 下列引數定義兩個試用,其中第二個已啟動 EdgeNow/Enable/*MaterialDesignNTP/Default/: 。 瀏覽器處理程序也可以使用此選項,使用相同的格式將試用清單傳送至非瀏覽器處理程序。 |
force-fieldtrial-params |
可用於在本地測試更改時強制執行現場試驗參數。 引數是 (索引鍵、值) 組的參數清單,前面是相關聯的 (試用、群組) 配對。 對於多重 (試用版、群組) 組配對,請使用逗號分隔符號。 |
force-renderer-accessibility |
是否要強制開啟轉譯器協助工具,而不是在偵測到螢幕助讀程式時隨選啟用轉譯器協助工具。
disable-renderer-accessibility如果旗標存在,旗disable-renderer-accessibility標會覆寫此旗標。 |
HardwareMediaKeyHandling |
啟用處理硬體媒體金鑰以控制媒體。 |
ignore-certificate-errors |
忽略憑證相關錯誤。 |
ignore-gpu-blocklist |
是否要忽略 GPU 封鎖清單。 |
incognito |
強制 InPrivate (無痕) 模式,即使使用者資料目錄是使用 --user-data-dir 旗標指定。 |
isolate-origins |
要求一組來源有專用的處理程序,指定為逗點分隔清單。 範例: --isolate-origins=https://www.foo.com,https://www.bar.com。 |
js-flags |
指定傳遞至 JS 引擎的旗標。 可用旗標: scavenger_max_new_space_capacity_mb: 指定 V8 JavaScript 引擎中清除程式 (次要) 記憶體記憶體回收器的 (上限) 。 較低的清除記憶體限制可減少記憶體使用量,並增加執行次要記憶體回收器的頻率。 較高的清除記憶體限制會增加記憶體使用量,並降低執行次要記憶體回收器的頻率。 範例: --js-flags=--scavenger_max_new_space_capacity_mb=8。 |
lang |
WebView2 想要嘗試開啟的語言檔案。 表單 language[-country],其中 language 是 ISO-639 中的 2 個字母代碼。 |
log-net-log |
啟用將網路記錄事件儲存至檔案。 如果指定值,則會使用該值做為目錄路徑和檔案名稱。 如果沒有提供任何值,則會將檔案命名為 netlog.json,並放置在使用者資料目錄中。 |
long-animation-frame-timing |
為長動畫幀提供詳細計時,這些幀超過標準 16.67 毫秒持續時間 (60fps) 。 這有助於在偵錯和效能分析期間,識別和最佳化動畫密集型應用程式的效能瓶頸。 |
msAbydos |
啟用「手寫轉換文字」體驗。 |
msAbydosGestureSupport |
允許使用者使用手勢 (,例如刮刮手勢) ,透過使用手寫筆來刪除文字。 只有在啟用旗 msAbydos 標時才有效。 |
msAbydosHandwritingAttr |
是否在 DOM 層級針對輸入元素啟用「手寫轉換文字」體驗。 只有在啟用旗 msAbydos 標時才有效。 |
msAbydosForWindowlessWV2 |
在視窗到視覺化裝載模式中啟用 ShellHandwriting (Windows Shell Handwriting) 功能。 只有在啟用旗 msAbydos 標時才有效。 另請參閱 WebView2 的視窗與視覺化託管。 |
msAllowAmbientAuthInPrivateWebView2 |
此旗標應與瀏覽器旗標一起使用 msSingleSignOnForInPrivateWebView2 ,以使用預設認證流程或環境驗證流程啟用單一登入 (SSO) 。 |
msEdgeDesignerDriverFix |
啟用取得內容並自動顯示 Designer 功能。 WebView2 中不支援 Designer 功能。 |
msEdgeDesignerUI |
啟用 Designer Shoreline 應用程式。 WebView2 中不支援 Designer Shoreline 應用程式。 |
msEdgeDevToolsWdpRemoteDebugging |
啟用遠端偵錯。 請參閱遠端 偵錯 WebView2 WinUI 2 (UWP) 應用程式, 遠端偵錯 Windows 裝置。 |
msEdgeFluentOverlayScrollbar |
強制啟用 Fluent 重疊捲軸,覆寫目前可能擁有的任何值 kFluentScrollbar 。 |
msEdgeHubAppDesigner |
啟用 Designer Shoreline 應用程式。 WebView2 中不支援 Designer Shoreline 應用程式。 |
msEdgeWebViewApplyWebResourceRequestedFilterForOOPIFs |
使 AddWebResourceRequestedFilter 方法 (包括多載) 也適用於程序外 iframe。 .NET: AddWebResourceRequestedFilter WinRT: AddWebResourceRequestedFilter Win32: AddWebResourceRequestedFilterWithRequestSourceKinds |
msEnhancedTextContrast |
改善文字對比增強和 Gamma 校正,以符合其他原生 Windows 應用程式的品質和清晰度。 使用此旗標時,字型轉譯會在套用文字對比增強和色差補正時,遵循使用者的 ClearType 調諧器設定。 |
msEnhancedTrackingPreventionEnabled |
啟用原生隱私權保護功能,例如封鎖位於已知為追蹤網域之網域中的 Cookie 和 Web 要求。 |
msFloatyMode |
取 或 truefalse 值。 如果 true,啟用浮動功能。 如果 false,會停用 Floaty 功能。 使用此旗標可停用 Floaty 功能,因為 WebView 不支援瀏覽器保留實驗。 |
msFloatyShouldHonorIndiaHoldout |
取 或 truefalse 值。 如果 true,向印度堅守團體致敬。 如果 false,會停用在使用者是印度保留群組成員時啟用的 Floaty 功能,因為 WebView 不支援瀏覽器保留實驗。 |
msOverlayScrollbarWinStyle |
使用者是否可以在 Fluent 捲軸的重疊和非重疊模式之間切換。 |
msPageInteractionManagerWebview2 |
根據預設,WebView2 會停用 頁面互動限制管理員 API。 如果應用程式需要在 WebView2 中啟用此 API 的設定,則應用程式必須啟用此旗標。 |
msPdfEnableAsPreview |
這項功能可讓 PDF 檢視器以最小的工具列和唯讀預覽模式啟動。 |
msSingleSignOnForInPrivateWebView2 |
此旗標可為 WebView2 的 InPrivate (無痕) 工作階段啟用單一登入 (SSO) 流程。 在 InPrivate (無痕) 模式中啟用瀏覽器型 SSO。 |
msSingleSignOnOSForPrimaryAccountIsShared |
允許使用任何帳戶,透過使用主要作業系統帳戶中的資訊,隱含登入 Microsoft 網頁。 |
msSmartScreenProtection |
提供 SmartScreen 保護。 |
msUseSpellCheckCorrectionsCard |
當使用者按一下拼錯的單字時,顯示校正卡 UI。 |
msWebViewAllowLocalNetworkAccessChecks |
啟用本機網路存取安全性檢查,除非明確允許,否則會限制來自公用來源的 Web 內容存取本機和回送網路資源。 預設為停用;必須由應用程式啟用才能設定 WebView2 中的區域網路存取行為。 注意:此功能旗標將一直適用,直到 API 完全上線且其採用達到穩定狀態為止,之後此旗標將會遭取代。 |
msWebView2BrowserHitTransparent |
讓滑鼠和鍵盤事件透過 WebView2 控制項傳遞至基礎應用程式,以允許應用程式處理這些事件,而非 WebView2 控制項處理事件。 如果未啟用此旗標,WebView2 控制項會處理滑鼠和鍵盤事件;事件不會傳遞到基礎 App。 此旗標可讓您針對應用程式需要直接處理輸入事件的情況下,測試當 WebView2 控制項未攔截輸入事件時應用程式的行為方式。 此旗標不接受值。 此旗標可能會導致應用程式當機或凍結。 |
msWebView2CancelInitialNavigation |
取消 WebView2 中的初始瀏覽,以改善啟動效能。 |
msWebView2CodeCache |
使在 SetVirtualHostNameToFolderMapping WebView2 應用程式中載入的 JavaScript 資源透過位元組碼快取載入或 add_WebResourceRequested 符合位元組碼快取的資格,這應該會加快第三次和後續載入的速度。 此功能也會為使用 DevTools 網路攔截機制的任何其他元件啟用位元組碼快取,以提供自訂回應;請參閱 網路要求的自訂管理。 |
msWebView2EnableDownloadContentInWebResourceResponseReceived |
允許在 中提供成為下載的瀏覽回應。WebResourceResponseReceived |
msWebView2EnableDraggableRegions |
取 或 truefalse 值。 如果 true,會啟用 WebView2 內的網頁使用 app-region: drag\|nodrag CSS 樣式,這會導致具有該樣式的元素表現得像標題列。 如果 false,或沒有此旗標, app-region: drag\|nodrag 則 CSS 樣式沒有作用。 |
msWebView2NativeEventDispatch |
使用原生 Mojo 連線來發送內部事件,例如 Web 訊息至轉譯器程序。 |
msWebView2SimulateMemoryPressureWhenInactive |
模擬非使用中 Web 檢視的記憶體壓力。 |
msWebView2TextureStream |
允許將擷取或撰寫的視訊框架串流到 WebView2 控制項,JavaScript 可以透過 W3C 標準 DOM API,包括 視訊內嵌元素 和 MediaStream,轉譯或以其他方式與框架互動。 |
msWebView2TreatAppSuspendAsDeviceSuspend |
當所有 WebView 都暫停時,讓 WebView2 將應用程式視為暫停裝置,並暫停所有延遲的工作和計時器。 |
no-proxy-server |
覆寫傳遞的任何其他 Proxy 伺服器旗標。 |
net-log-capture-mode |
設定要在網路記錄檔中擷取的事件細微性。 有效值: Default、 IncludeSensitive、 Everything。 |
no-network-profile-warning |
如果 UDF 位於網路共用上,會讓瀏覽器發出警告。 只有 Windows 才支援此旗標;在其他平台上會忽略此旗標。 |
no-sandbox |
針對通常會沙箱化的所有程序類型停用沙箱。 做為瀏覽器層級旗標,僅用於測試目的。 |
no-first-run |
略過 First-Run 工作,無論是否真的是第一次執行,並跳過顯示新增功能頁面。 此旗標會由 First-Run 體驗 (FRE) ) 的 (,以及顯示 [新增功能]) 的 (覆kForceWhatsNew寫kForceFirstRun。 此旗標不會捨棄 [首次執行] Sentinel,因此不會防止下次在沒有此旗標的情況下啟動 Edge WebView 瀏覽器時發生 First-Run 體驗。 此旗標不會更新上一個「新增功能」里程碑,因此不會防止下次在沒有此旗標的情況下啟動 Edge WebView 瀏覽器時顯示「新增功能」。 |
PartitionedCookies |
讓網站能夠選擇加入,以使用 Partitioned 屬性將其 Cookie 依最上層網站進行分割。 只有當瀏覽器位於設定 Cookie 時所處的同一頂層網站時,才會傳送分割的 Cookie。 |
proxy-auto-detect |
強制執行 Proxy 自動偵測。 |
proxy-bypass-list |
略過 Proxy 設定的主機清單;然後,指定的主機會改用直接連線。 除非同時指定,否則 --proxy-server 會忽略此旗標。 多個主機可以提供為逗點分隔清單。 |
proxy-server |
覆寫系統設定的 Proxy 伺服器。 此旗標只會影響 HTTP 和 HTTPS 要求。 |
remote-allow-origins |
僅啟用來自指定來源的 Web 通訊端連線。
*萬用字元允許任何來源。 |
remote-debugging-port |
在指定連接埠上啟用透過 HTTP 遠端偵錯。 |
RendererAppContainer |
啟用轉譯器 AppContainer。 |
Restart |
表示 Microsoft Edge WebView2 瀏覽器處理程序已重新啟動 (例如在旗標變更) 之後。 使用此旗標可在記錄 Launch.Mode2 計量時忽略啟動。 |
sdsm-state |
「Super Duper Secure 模式」狀態。 有效值: off、 basic、 balanced、 strict。 |
SharedArrayBuffer |
表示 SharedArrayBuffer 存在對話。 |
SpareRendererForSitePerProcess |
讓 Edge Webview 備用轉譯器程序嘗試一律為最近要求 BrowserContext的暖備用轉譯器程序執行。 此功能僅在每處理程序網站模式下查閱。 |
ThirdPartyStoragePartitioning |
啟用按頂層網站分割協力廠商儲存體, IndexedDB 例如 或 CacheStorage,以減少指紋辨識。 |
unsafely-treat-insecure-origin-as-secure |
將指定 (不安全的) 來源視為安全來源。 可以指定多個來源,作為逗點分隔清單。 有關安全內容的定義,請參閱 安全內容,包括 是否可能值得信任?一節origin。 範例: --unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test。 |
use-fake-device-for-media-stream |
為 Media Stream 使用假裝置來取代實際的相機和麥克風。 |
use-fake-ui-for-media-stream |
透過選取媒體串流的預設裝置,如 WebRTC) (,略過媒體串流資訊列。 使用 --use-fake-device-for-media-stream。 最好改為使用 --auto-accept-camera-and-microphone-capture ,其不會與螢幕擷取互動,例如擷取瀏覽器索引標籤。 |
use-system-proxy-resolver |
使用 WinHttp 解析 Proxy,而不是使用 WebView2 的一般 Proxy 解析邏輯。 只有 Windows 才支援此旗標。 |
user-agent |
用來以自訂使用者代理程式覆寫預設使用者代理程式的字串。 |
user-data-migrated |
表示此程序是在使用者資料移轉之後重新啟動的結果。 |
UseBackgroundNativeThreadPool |
造成 WebView2 ThreadPoolImpl 使用由原生執行緒集區實作支援的背景 ThreadGroup。 |
UseNativeThreadPool |
讓 WebView2 ThreadPoolImpl 使用由原生執行緒集區實作支援的前景 ThreadGroup 。 |
V8Maglev |
啟用磁懸浮編譯器。 這只會在手動覆蓋時設置 V8 標誌;否則,它將遵循 V8 預設值。 |
另請參閱
- Microsoft Edge WebView2 簡介
- WebView2 API 參考 - 其他平台和語言的 API 參考連結,例如 WinRT/C++ (COM) 。