Skip to content

网络与环境配置

App 级 API 配置 WebView2 环境的 UserAgent / Proxy / userDataFolder + 运行时 clearCache。对齐 Electron session.setProxy/setUserAgent

核心约束:UA / Proxy / userDataFolder 是 env 创建参数,运行时不可改——须在首个 createWindow(触发 ensureEnv)前调,env 建后 setXxxfalse

setUserAgent

cpp
App::instance().setUserAgent(L"MyApp/1.0 (Windows)");

自定义 HTTP User-Agent(所有窗口共享)。走 Chromium command-line(--user-agent=,经 put_AdditionalBrowserArguments 注入)。env 建后无效。

setProxy

cpp
App::instance().setProxy(L"proxy.host:8080");

--proxy-server= command-line。Chromium 格式:

语义
host:port全协议经此代理
http=host:8080;https=host:8080按协议
direct://直连,禁系统代理

setUserDataFolder

cpp
App::instance().setUserDataFolder(L"E:\\myapp-data");

cache + cookies + localStorage 总目录(env param2)。默认 %LOCALAPPDATA%\<exe>.WebView2。便携版可指向 exe 同目录或 getPath('userData')

clearCache

cpp
App::instance().clearCache();   // 任意时,async

走 DevTools Protocol Network.clearBrowserCacheWindow::callDevToolsAsync),浏览器级(清整个 env 的网络 cache),不重启进程。

时序

App::instance()
  ├ setUserAgent/setProxy/setUserDataFolder   ← 须 createWindow 前(env 建后返 false)
  ├ createWindow → ensureEnv                  ← 读上述建 env(command-line + userData param)
  ├ clearCache                                ← 任意时
  └ run

实现细节

  • SDK 1.0.2903 无 env 级 put_UserAgent/put_ProxyServer,故 UA+Proxy 走 ICoreWebView2EnvironmentOptions::put_AdditionalBrowserArguments(Chromium command-line)。
  • userDataFolderCreateCoreWebView2EnvironmentWithOptions 第二参。
  • clearCacheCallDevToolsProtocolMethod(sync 发起 + handler 回调,fire-and-forget)。

下一步