从字符串加载 html 时 TWebBrowser 抛出线程异常

TWebBrowser throwing thread exception when loading html from string

我正在开发一个将 HTML 字符串加载到 WebBrowser 中的应用程序,但是当我从 WebBrowser 调用 LoadFromString 方法时,它会抛出一个 RuntimeException 消息:

java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'Thread-2'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 2) {c7ba400} called on null, FYI main Looper is 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 并在装有 Android 9 的 Moto G5 中进行测试。

WebBroser 方法需要 运行 在 UI 线程中,所以正如 Dalija Prasnikar 评论所说,我将调用移至 CallInUiThread,现在一切正常。