Как установить пользовательский агент в новом Delphi TEdgeBrowser?

Мне нужно изменить пользовательский агент в TEdgeBrowser

Как установить useragent в новый Delphi TEdgeBrowser VCL?

2 ответа

Согласно документации Microsoft , это доступно только в предварительной версии. Так что он [пока] недоступен в Delphi TEdgeBrowser.

Я нашел решение.

Microsoft обновила WebView2 и добавила возможность менять пользовательский агент. Но Embarcadero не обновила компонент.

Создать новый интерфейс

      unit Webview2Ex;

interface

uses
    WebView2;

const
   IID_ICoreWebView2Settings2: TGUID = '{EE9A0F68-F46C-4E32-AC23-EF8CAC224D2A}';

type

  ICoreWebView2Settings2 = interface(ICoreWebView2Settings)
    ['{EE9A0F68-F46C-4E32-AC23-EF8CAC224D2A}']
    function Get_UserAgent(out UserAgent: PWideChar): HResult; stdcall;
    function Set_UserAgent(UserAgent: PWideChar): HResult; stdcall;
  end;

implementation

end.

Создать обработчик onCreateWebViewCompleted

       procedure TAiForm.RBrowserCreateWebViewCompleted(Sender: TCustomEdgeBrowser;
          AResult: HRESULT);
        var
            Ctrl2     : ICoreWebView2Settings2;
            HR        : HRESULT;
            UA        : PWideChar;
        begin
//You must query SettingsInterface2 from SettingsInterface it's important
         Sender.SettingsInterface.QueryInterface(IID_ICoreWebView2Settings2, Ctrl2);
            if not Assigned(Ctrl2) then
                raise Exception.Create('ICoreWebView2Settings2 not found');
        
            UA := 'NEW UA';
            HR := Ctrl2.Set_UserAgent(UA);
        
            HR := Ctrl2.Get_UserAgent(UA);
            if not SUCCEEDED(HR) then
                raise Exception.Create('Get_UserAgent failed')
                else ShowMessage(ua);
        end;

Также необходимо обновить компонент WebView2 от Microsoft.

https://developer.microsoft.com/en-us/microsoft-edge/webview2/

Если вы хотите обновить все интерфейсы, прочитайте эту статью.

WebView2 (TEdgeBrowser) обновил интерфейс Delphi (например, ICoreWebView2Controller2)

Другие вопросы по тегам