TWebBrowser выбрасывает исключение потока при загрузке HTML из строки - PullRequest
1 голос
/ 03 июля 2019

Я разрабатываю приложение, которое загружает строку HTML в WebBrowser, но когда я вызываю методы LoadFromString из WebBrowser, оно выдает исключение RuntimeException с сообщением:

java.lang.RuntimeException: java.lang.Throwable: в потоке 'Thread-2' был вызван метод WebView. Все методы WebView должны вызываться в одном потоке. (Ожидается, что Looper Looper (main, tid 2) {c7ba400} вызван на нуль, основной FYI Looper - это Looper (main, tid 2) {c7ba400})

HTML хранится в файле и загружается в строку только для целей тестирования, конечное приложение получит строку из DataSnap и покажет ее с помощью WebBrowser.

Это код:

procedure LoadString;
var
  htmlContent: String;
  filePath: String;
  dbpath: String;
begin
  filePath := TPath.Combine(TPath.GetDocumentsPath, 'index.html');
  htmlContent := TFile.ReadAllText(filePath);
  WebBrowser1.LoadFromStrings(htmlContent, 'about:blank');
  btnSearch.Visible := False;
  TabControl1.GotoVisibleTab(tbResult.Index);
end;

Я не использую нить в этом приложении.

Если уместно, я использую Delphi 10.1 Berlin и тестирую на Moto G5 с Android 9.

1 Ответ

1 голос
/ 03 июля 2019

Метод WebBroser должен запускаться в потоке пользовательского интерфейса, поэтому, как сказано в комментарии Далии Прасникара, я переместил вызов в CallInUiThread, и теперь все работает.

...