我正在使用 Delphi 11.1 的 Edge 瀏覽器組件來自動化導航程序。問題是在導航程序開始時我收到訊息“您的連接不是私人的”并且整個程序停止,直到我按下按鈕“高級”和按鈕“繼續到 1xx.xx.xx.xx(不安全)”!
我不得不提到,當我通過 Windows Edge 瀏覽器導航到這個 Intranet 站點時,我沒有收到該訊息,因為我已經上傳了這個站點的證書并且我也將它添加到了 Edge 瀏覽器的例外中。
我認為我必須以某種方式將“InsecurePrivateNetworkRequestsAllowed”屬性設定為 true,但我找不到方法或以某種方式將證書上傳到 Delphi 的 Edge 瀏覽器組件。
有任何想法嗎?謝謝你。
uj5u.com熱心網友回復:
單擊繼續鏈接可以繞過不安全的連接警告。
下面是一個代碼示例:
procedure TForm1.EdgeBrowserNavigationCompleted(Sender: TCustomEdgeBrowser;
IsSuccess: Boolean; WebErrorStatus: TOleEnum);
resourcestring
scProceed =
'function run() { '
' var e = document.getElementById("proceed-link"); '
' if (e) e.click(); '
'} run();';
begin
if not IsSuccess and (WebErrorStatus = COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID) then
EdgeBrowser.ExecuteScript(scProceed);
end;
另一種方法是使用CoreWebView2EnvironmentOptions.AdditionalBrowserArguments控制 WebView2 行為。此處記錄了一些論點。
目前,Delphi 11.1 不允許您使用某些組件/介面來管理它們,但可以WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS在 WebView 初始化之前使用環境變數設定這些選項:
procedure TForm1.FormCreate(Sender: TObject);
begin
SetEnvironmentVariable('WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS',
'--ignore-certificate-errors');
EdgeBrowser.CreateWebView;
end;
請注意,由于安全問題和零星的辯論,此選項將來可能會被洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463167.html
