Skip to content

网络与环境配置 ​

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

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

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.clearBrowserCache(Window::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)。
  • userDataFolder 是 CreateCoreWebView2EnvironmentWithOptions 第二参。
  • clearCache 用 CallDevToolsProtocolMethod(sync 发起 + handler 回调,fire-and-forget)。

下一步 ​