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-разрядная).
Кроме того, я просмотрел документацию, и в ней говорится, что нужно получить версию канареечного канала. Итак, пока я скачал бета-версию, я предполагаю, что вам нужно скачать именно канарейку, которая также решит проблему.
Браузер на основе Microsoft Edge Chromium в настоящее время доступен по https://www.microsoftedgeinsider.com/download (версия для канала Canary, пока WebView2 SDK находится в предварительном выпуске, в настоящее время минимально необходимая версия - 82.0.430.0).