你可以透過傳遞瀏覽器旗標 (參數,或) WebView2 Microsoft Edge WebView2 互動並影響行為。 這些瀏覽器標誌對於測試即將推出的功能以及診斷問題非常有用。
對於生產應用程式,請勿使用這些旗標。 在開發過程中,如果有旗標,就會產生以下指定的行為。
警告
生產中的應用程式不應該使用 WebView2 瀏覽器標誌,因為這些標記隨時可能被移除或更改,且不一定長期支援。
一般來說,這些旗幟同時由 Chromium 和 Microsoft Edge 擁有。 Chromium 旗標並非 Microsoft Edge 擁有或控制,因此 Microsoft Edge 無法控制旗標何時或如何移除或改變其行為。
你可以在本地裝置環境中設定瀏覽器旗標,或透過程式碼程式化設定瀏覽器旗標。 以下將介紹兩種方法。
在本地裝置環境中設定瀏覽器旗標
為了測試即將推出的功能或診斷問題,我們建議在本地裝置環境中使用瀏覽器標誌,例如設定 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 環境變數或登錄檔鍵。 欲了解更多資訊,請參閱以下 Win32 API 參考文獻: CreateCoreWebView2EnvironmentWithOptions。
透過程式碼程式設定瀏覽器標誌
另一種方法是透過程式化設定瀏覽器標誌,將瀏覽器標誌傳遞為 AdditionalBrowserArguments 的屬性 CoreWebView2EnvironmentOptions。 如果你用程式設定瀏覽器標誌,務必在出貨前先在程式碼中移除這些標記,以避免在生產環境中誤送這些標誌。
-
CoreWebView2EnvironmentOptions班:
可用的 WebView2 瀏覽器旗標
以下 WebView2 瀏覽器旗標可供開發期間使用。
對於生產應用程式,請勿使用這些旗標。 在開發過程中,如果有旗標,就會產生以下指定的行為。
| 旗 | 描述 |
|---|---|
accept-lang |
指定 Accept-Language 傳送至伺服器並透過 Navigator.language DOM 屬性暴露給 JavaScript。 格式為 language[-country],其中 language 是 ISO-639 中的兩字母代碼。 |
allow-file-access-from-files |
允許讀取 file:// 其他 file:// URI 的 URI。 |
allow-insecure-localhost |
可忽略本地主機上的 TLS/SSL 錯誤,避免間隙處理,也不會阻擋請求。 |
allow-run-as-system |
預設情況下,Edge WebView 瀏覽器若以系統啟動 () 不建議以系統啟動。 此標誌會繞過該檢查,即使 Edge WebView 瀏覽器以系統啟動,Edge WebView 瀏覽器也不會退出。 |
allow-running-insecure-content |
啟用 Cast Web Runtime 中的不安全內容。 此旗標解除阻擋從 HTTP 來源提供內容的 MSP。 |
auto-open-devtools-for-tabs |
讓 Edge WebView 自動開啟每個分頁的 DevTools 視窗。供開發者及自動化使用。 |
AutofillReplaceCachedWebElementsByRendererIds |
將 AutofillAgent 和 FormTracker 中快取的網頁元素替換為渲染器 ID。 |
autoplay-policy |
用命令列旗標名稱來設定自動播放政策。 |
BlockInsecurePrivateNetworkRequests |
啟用此功能後,來自位址空間中非安全上下文 public 的私有網路請求會被阻擋。 |
block-new-web-contents |
取 a true 或 false 值。 如果 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 |
禁用各種顯示卡驅動程式錯誤的變通方法。 |
disable-site-isolation-trials |
關閉現場隔離。 |
disable-web-security |
會停用跨來源政策,且不強制執行同源政策。 僅用於網站測試。 |
disk-cache-size |
強制磁碟快取使用的最大磁碟空間,以位元組為單位。 |
do-not-de-elevate |
防止 WebView2 在發射時被降高。 在卸電後使用,以防止無限循環。 |
edge-webview-debugging-script |
非同步執行 PostWebMessage 腳本。 |
edge-webview-enable-mojo-ipcz |
啟用 MojoIpcz (mojo-ipcz) ,支援使用 WebView2 的應用程式。 |
edge-webview-foreground-boost-opt-in |
選擇加入前景提升。 |
edge-webview-foreground-boost-opt-out |
選擇退出前景提升。 |
edge-webview-force-personal-context |
強制 Edge WebView 瀏覽器程序在進行中個人情境中執行。 |
edge-webview-interactive-dragging |
使指標事件與焦點事件能發生在具有該 --app-region: drag 屬性的元素上。 拖曳元素預設是互動式的。 |
edge-webview-disable-interactive-dragging |
禁用指標事件與焦點事件,防止發生在具有該 --app-region: drag 屬性的元素上。 如果這個旗標沒有設定,拖曳元素預設是互動式的。 |
edge-webview-is-background |
表示 WebView 正在背景啟動。 |
edge-webview-no-dpi-workaround |
關閉「DPI awareness app compatibility shim」的變通機制,該機制會透過 shell 啟動 Edge WebView 瀏覽器程序,避免程序繼承「app compat」的 shim。 |
edge-webview-run-with-package-id |
為橋接桌面應用程式執行 WebView 程序,並附有套件身份 (套件 ID) 。 |
edge-webview-run-without-package-id |
為橋接桌面應用程式執行 WebView 程序,無需套件識別碼 (套件 ID) 。 |
embedded-browser-webview-dpi-awareness |
設定伺服器端程序的 DPI 感知等級。 |
enable-aggressive-domstorage-flushing |
啟用積極的DOM儲存清除功能,以減少資料遺失。 |
enable-experimental-web-platform-features |
啟用正在開發中的網頁平台功能。 |
enable-logging |
啟用錯誤等級的日誌記錄。 |
force-color-profile |
強制所有螢幕都被當作擁有指定的色彩配置檔來處理。 有效值: srgb, generic-rgb。 |
force-device-scale-factor |
覆蓋 Edge WebView 瀏覽器介面及內容的裝置縮放因子。 |
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 |
是否要忽略顯示卡的封鎖清單。 |
incognito |
即使使用者資料目錄是透過 --user-data-dir 旗標指定,也會強制 InPrivate (無痕) 模式。 |
isolate-origins |
要求專門處理一組起點,並以逗號分隔的清單指定。 範例: --isolate-origins=https://www.foo.com,https://www.bar.com。 |
js-flags |
指定傳遞給 JS 引擎的旗標。 可用標誌: scavenger_max_new_space_capacity_mb:在 V8 JavaScript 引擎中,指定 MB) 中 scavenger (minior) garbage collector 的最大 (上限。 較低的拾荒記憶體限制可降低記憶體使用,並增加執行次要垃圾回收器的頻率。 較高的拾荒記憶體限制會增加記憶體使用量,並降低執行次要垃圾回收器的頻率。 範例: --js-flags=--scavenger_max_new_space_capacity_mb=8。 |
lang |
WebView2 想嘗試開啟的語言檔案。 語言[-country]的形式,其中語言是ISO-639的兩字母代碼。 |
log-net-log |
啟用將網路日誌事件儲存到檔案中。 若給定值,該值即用作目錄路徑與檔案名稱。 若未給出值,檔案將命名 netlog.json為 ,並放入使用者資料目錄。 |
long-animation-frame-timing |
提供長動畫幀的詳細時序,長動畫幀數超過標準 16.67 毫秒時長 (60fps) 。 這有助於除錯與效能分析,識別並優化動畫密集應用的效能瓶頸。 |
msAbydos |
實現「手寫轉文字」的體驗。 |
msAbydosGestureSupport |
允許使用者使用手勢 (如刮寫手勢) 用筆刪除文字。 只有在 msAbydos 該旗標被啟用時才有效。 |
msAbydosHandwritingAttr |
是否在 DOM 層級的輸入元素啟用了「手寫轉文字」的體驗。 只有在 msAbydos 該旗標被啟用時才有效。 |
msAllowAmbientAuthInPrivateWebView2 |
此旗標與瀏覽器標誌一起使用 msSingleSignOnForInPrivateWebView2 ,以啟用單一登入 (SSO) ,並使用預設憑證流程或環境驗證流程。 |
msEdgeDesignerDriverFix |
能自動取得內容並顯示 Designer 功能。 WebView2 不支援 Designer 功能。 |
msEdgeDesignerUI |
啟用 Designer Shoreline 應用程式。 Designer Shoreline 應用程式在 WebView2 中不被支援。 |
msEdgeDevToolsWdpRemoteDebugging |
啟用遠端除錯。 請參閱 遠端除錯 WebView2 WinUI 2 (UWP) 應用程式、 遠端除錯 Windows 裝置。 |
msEdgeFluentOverlayScrollbar |
強制啟用流暢疊加捲軸條,覆蓋當下可能存在的數 kFluentScrollbar 值。 |
msEdgeHubAppDesigner |
啟用 Designer Shoreline 應用程式。 Designer Shoreline 應用程式在 WebView2 中不被支援。 |
msEdgeWebViewApplyWebResourceRequestedFilterForOOPIFs |
使 AddWebResourceRequestedFilter 得包含超載的方法 () 也適用於非程序的 iframe。 .NET: AddWeb資源請求過濾器 WinRT: AddWebResourceRequestedFilter Win32: AddWebResourceRequestedFilterWithRequestSourceKinds |
msEnhancedTextContrast |
提升文字對比度增強與伽瑪校正,以匹敵其他原生 Windows 應用程式的品質與清晰度。 使用此旗標時,字型渲染會尊重使用者 ClearType Tuner 設定,並套用文字對比增強與伽瑪校正。 |
msEnhancedTrackingPreventionEnabled |
啟用原生隱私保護功能,例如阻擋位於已知追蹤網域中的 Cookie 及網頁請求。 |
msFloatyMode |
取 a true 或 false 值。 若 true,則啟用浮浮功能。 若 false,則會禁用漂浮功能。 使用此旗標來停用 Floaty 功能,因為 WebView 不支援瀏覽器保留實驗。 |
msFloatyShouldHonorIndiaHoldout |
取 a true 或 false 值。 如果 true,則是向印度的堅持派致敬。 如果 false,則會停用若使用者屬於印度保留群組時啟用的 Floaty 功能,因為 WebView 不支援瀏覽器保留實驗。 |
msOverlayScrollbarWinStyle |
使用者是否能在 Fluent 滾動條的覆蓋與非覆蓋模式間切換。 |
msPageInteractionManagerWebview2 |
預設情況下,網頁 互動限制管理器 API 在 WebView2 中被停用。 如果應用程式需要在 WebView2 中啟用此 API 的設定,該應用程式必須啟用此標誌。 |
msPdfEnableAsPreview |
此功能使 PDF 檢視器能以最小工具列啟動,並以唯讀預覽模式啟動。 |
msSingleSignOnForInPrivateWebView2 |
此旗標使 InPrivate (InPrivate) WebView2 會話的單點登入 (SSO) 流程得以實現。 啟用 InPrivate (Inguito) 模式中的瀏覽器 SSO。 |
msSingleSignOnOSForPrimaryAccountIsShared |
允許使用任何帳號,透過主要作業系統帳號的資訊,隱式登入 Microsoft 網頁。 |
msSmartScreenProtection |
讓智慧螢幕保護可用。 |
msUseSpellCheckCorrectionsCard |
當使用者點擊拼錯字時,會顯示更正卡片的介面。 |
msWebView2BrowserHitTransparent |
讓滑鼠和鍵盤事件通過 WebView2 控制項傳遞到底層應用程式,讓應用程式能處理這些事件,而非由 WebView2 控制項處理事件。 當未啟用此標誌時,WebView2 控制項會處理滑鼠與鍵盤事件;事件不會傳遞到底層應用程式。 此旗標允許測試當 WebView2 控制項未攔截輸入事件時,應用程式的行為,適用於需要直接處理輸入事件的情境。 這個旗幟不帶數值。 這個標記可能會導致應用程式當機或當機。 |
msWebView2CancelInitialNavigation |
取消 WebView2 的初始導覽,以提升啟動效能。 |
msWebView2CodeCache |
讓在 WebView2 應用程式SetVirtualHostNameToFolderMappingadd_WebResourceRequested中透過位元組碼快取載入的 JavaScript 資源,這應該能加快第三次及後續載入的速度。 此功能同時允許其他使用 DevTools 網路攔截機制提供自訂回應的元件進行位元碼快取;請參見 網路請求的自訂管理。 |
msWebView2EnableDownloadContentInWebResourceResponseReceived |
允許成為下載的導航回應在 中提供 WebResourceResponseReceived。 |
msWebView2EnableDraggableRegions |
取 a true 或 false 值。 如果 true,使網頁在 WebView2 中能使用 app-region: drag\|nodrag CSS 樣式,使該樣式的元素表現得像標題列。 若 false,或沒有此標誌, app-region: drag\|nodrag CSS 風格不影響。 |
msWebView2NativeEventDispatch |
使用原生 Mojo 連線來派遣內部事件,例如網頁訊息到渲染程序。 |
msWebView2SimulateMemoryPressureWhenInactive |
模擬非啟用 WebView 的記憶體壓力。 |
msWebView2TextureStream |
允許將擷取或合成的影片影格串流至 WebView2 控制項,JavaScript 可透過 W3C 標準 DOM API(包括 Video Embed 元素 與 MediaStream)渲染或以其他方式互動這些影格。 |
msWebView2TreatAppSuspendAsDeviceSuspend |
當所有 WebViews 都被暫停時,WebView2 會將應用程式視為裝置被暫停,並暫停所有延遲的任務和計時器。 |
no-proxy-server |
覆蓋所有已通過的代理伺服器旗標。 |
net-log-capture-mode |
設定事件的細度,以記錄在網路日誌中。 有效值: Default, IncludeSensitive, Everything, |
no-network-profile-warning |
如果 UDF 正在網路共享,瀏覽器會警告。 此旗標僅支援 Windows;此旗幟在其他平台被忽視。 |
no-sandbox |
關閉所有通常沙盒化的流程類型。 本來只是作為瀏覽器層級的旗標,僅供測試用途。 |
no-first-run |
跳過 First-Run 任務,不管是不是第一次執行,也跳過顯示「最新資訊」頁面。 此旗幟被 kForceFirstRun (覆蓋,代表 First-Run 體驗 (FRE) ) , (kForceWhatsNew 則用於顯示最新) 。 此旗標不會移除首次運行哨兵,因此下一次 Edge WebView 瀏覽器啟動時,First-Run 體驗仍會發生。 這個旗標不會更新最後一個「新增內容」里程碑,因此下次沒有這個標記的 Edge WebView 瀏覽器啟動時,也不會阻止「新增內容」被顯示。 |
PartitionedCookies |
允許網站透過屬性 Partitioned 選擇依頂層網站分割 Cookie。 分區 Cookie 只有在瀏覽器仍在與 Cookie 設定時相同的頂層網站時才會傳送。 |
proxy-auto-detect |
強制代理自動偵測。 |
proxy-bypass-list |
一個被繞過代理設定的主機清單;指定的主機則改用直接連線。 除非 --proxy-server 另有說明,否則此旗幟被忽略。 多個主機可以逗號分隔清單提供。 |
proxy-server |
一個能覆寫系統設定的代理伺服器。 此旗標僅影響 HTTP 和 HTTPS 請求。 |
remote-allow-origins |
僅啟用指定的來源點的網頁套接字連線。
*萬用牌允許任何起源。 |
remote-debugging-port |
啟用指定的埠口上的 HTTP 遠端除錯。 |
RendererAppContainer |
啟用渲染器 AppContainer。 |
Restart |
表示 Edge Microsoft WebView2 瀏覽器程序在 (例如旗標變更) 後被重新啟動。 記錄指標時,請使用此旗標忽略發射 Launch.Mode2 。 |
sdsm-state |
「超級安全模式」狀態。 有效值: 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 來解析代理,而非 WebView2 正常的代理解決邏輯。 這個旗標只支援 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) 。