如何在Delphi的TEdgeBrowser组件中禁用安全设置绕过证书错误
Delphi中TEdgeBrowser等效实现方案
以下两种方案可分别对应你提到的C#实现逻辑,均可实现跳过证书错误页、禁用WebView2安全限制的需求:
方案1:预配置启动参数(对应CoreWebView2EnvironmentOptions配置方案)
该方案需要在TEdgeBrowser的CoreWebView2实例初始化完成前设置启动参数,参数一旦配置后续无法动态修改,需重建实例生效:
procedure TMainForm.FormCreate(Sender: TObject); begin // 必须在CoreWebView2初始化前设置才会生效 EdgeBrowser1.AdditionalBrowserArguments := '--disable-web-security --ignore-certificate-errors'; // 触发CoreWebView2初始化,也可直接调用Navigate方法触发初始化 EdgeBrowser1.CreateWebView; end;
方案2:调用DevTools协议动态配置(对应CallDevToolsProtocolMethodAsync方案)
该方案可以在CoreWebView2初始化完成后动态生效,无需重启WebView实例:
procedure TMainForm.EdgeBrowser1CreateWebViewCompleted(Sender: TCustomEdgeBrowser; AResult: HRESULT); var DevToolsParam: string; begin if Succeeded(AResult) then begin DevToolsParam := '{"ignore": true}'; EdgeBrowser1.CoreWebView2.ExecuteDevToolsProtocolMethod('Security.setIgnoreCertificateErrors', DevToolsParam); end; end;
注意事项
- 两种方案均仅建议在内部测试、可控环境使用,生产环境开启会带来极大的安全风险
- 如果需要同时禁用跨域限制,可在启动参数中追加
--disable-features=CrossSiteDocumentBlockingIfIsolating,IsolateOrigins,site-per-process
内容的提问来源于stack exchange,提问作者Doug
相关产品推荐
相关产品推荐

