TEdgeBrowser Navigate завершается с ошибкой «Файл не найден» - PullRequest
3 голосов
/ 03 августа 2020

Моя первая попытка попробовать новый TEdgeBrowser не удалась: «Система не может найти файл»

procedure TFrmTEdgeBrowser.BtnNavigateClick(Sender: TObject);
var lErrCode: Integer;
begin
  if not EdgeBrowser.Navigate('https://www.google.com') then
  begin
     lErrCode := EdgeBrowser.LastErrorCode;
     ShowMessage(IntToStr(lErrCode) + ': ' + SysErrorMessage(lErrCode));
  end;
end;

Код ошибки -2147024894 = $ 80070002 действительно ERROR_FILE_NOT_FOUND

Последовательность (например, согласно https://www.delphipraxis.net/204266-new-vcl-tedgebrowser-component-coming-rad-studio-10-4-a.html или http://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_TEdgeBrowser_Component_and_Changes_to_the_TWebBrowser_Component):

  • Новая виртуальная машина Win10, запуск Edge, выигрыш установщик запускается и устанавливает Edge правильно
  • Загрузите и установите Edgeview2 SDK через GetIt
  • Скопируйте c:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32\WebView2Loader.dll в каталог приложения

Конфигурация: Delphi 10.4.3 Сидней , запуск 32-битного приложения на виртуальной машине Win10, установлен Edge 84.0.522.52

Попытки: нет https: впереди, перезагрузка, попытка получить дополнительную информацию от TApplicationEvents.OnException

I затем попытался запустить демонстрацию c:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\WebBrowser\Edge\EdgeBrowser.dproj (с dll, скопированной в этот каталог), но это дает ошибку инициализации с конца:

procedure TfrmMain.EdgeBrowserCreateWebViewCompleted(Sender: TCustomEdgeBrowser; AResult: HResult);
begin
{$IFDEF DEBUG}
  OutputDebugString('EdgeBrowser OnCreateWebViewCompleted');
{$ENDIF}
  if Succeeded(AResult) then
  begin
    tbCancel.Enabled := True;
    tbReload.Enabled := True;
    tbGo.Enabled := True;
    edtAddress.Enabled := True;
    Sender.AddWebResourceRequestedFilter('*', COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE);
  end
  else
  begin
    if AResult = HResultFromWin32(ERROR_FILE_NOT_FOUND) then
      Application.MessageBox('Could not find Edge installation. ' +
        'Do you have a version installed that''s compatible with this WebView2 SDK version?',
        'Edge initialisation error', MB_OK or MB_ICONERROR)
    else
      Application.MessageBox('Failed to initialise Edge browser control',
        'Edge initialisation error', MB_OK or MB_ICONERROR)
  end;
end;

Но теперь AResult -2147467259 = $ 80004005 который, похоже, связан с data / ODB C.

Обновление Microsoft.Web.Webview2 до более поздней версии 0.9.579 (20 июля 2020 г.) не помогло.

1 Ответ

0 голосов
/ 13 августа 2020

Я загрузил бета-версию Edge, и это исправило ее.

Я использовал версию 84.0.522.59 (официальная сборка) (64-разрядная версия), и у меня возникла та же проблема, что и у вас.

Я скачал версию 85.0.564.30 (официальная сборка) бета (64-разрядная).

Кроме того, я просмотрел документацию, и в ней говорится, что нужно получить версию для канала canary. Итак, пока я загружал бета-версию, я предполагаю, что вам нужно загрузить именно канарейку, которая также решит проблему.

http://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_TEdgeBrowser_Component_and_Changes_to_the_TWebBrowser_Component

Браузер на основе Microsoft Edge Chromium в настоящее время доступен с https://www.microsoftedgeinsider.com/download ( версия Canary channel , пока WebView2 SDK находится в предварительном выпуске, в настоящее время минимально необходимая версия - 82.0 .430.0).

...