TEdgeBrowser Navigate завершается с ошибкой "Файл не найден"

Моя первая попытка попробовать новый 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, запустить установщик win и правильно установить Edge
  • Загрузите и установите Edgeview2 SDK через GetIt
  • Копировать c:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32\WebView2Loader.dll в приложение dir

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

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

Затем я попытался запустить демо 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 долларов,
что, похоже, связано с данными /ODBC.

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

1 ответ

Решение

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

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

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

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

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, пока WebView2 SDK находится в предварительном выпуске, в настоящее время минимально необходимая версия - 82.0.430.0).

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