ios - 德尔福 TWebBrowser 错误

标签 ios delphi mobile delphi-xe5

我正在使用 Delphi XE5 FireMonkey(更新 1)开发一个 iOS 应用

我下载 PDF 并将它们存储在本地,然后使用 TWebBroswer 查看它们。这在我第一次下载文档或查看已下载的 PDF 时总是有效。但是,如果我下载并查看第二个 PDF,TWebBrowser 不会加载该文件。

if FileExists(filename) then
begin
  WebBrowser1.Navigate('about:blank'); //clear page
  WebBrowser1.Navigate('file://' + filename);
  //filename points to a PDF on the local device and the file 
  //definitly exists

  //first run always works 100%, second run comes into this IF statement
  //but the DidFailLoadWithError is fired
end;

我正在尝试确定错误是什么。在 Navigate 周围放置一个 try...except 不起作用,并且 DidFailLoadWithError 不允许人们发现错误。 请参阅:http://qc.embarcadero.com/wc/qcmain.aspx?d=115652有关 DidFailLoadWithError 'bug' 的信息

procedure Tform1.WebBrowser1DidFailLoadWithError(ASender: TObject);
begin
  //ASender is a TWebBrowser
  //No parameter with Error info!
end;

关于如何确定返回的错误有什么建议吗?

最佳答案

您需要复制 FMX 源目录,将该目录添加到您的搜索路径并对几个文件进行一些调整。

当您下次构建项目时,它将重新编译您复制/调整的所有 FMX 单元。您可以只复制您修改的部分,也可以通过反复试验复制更多部分,这将使初始构建更快。

在 FMX.WebBrowser.iOS 过程 TiOSWebViewDelegate.webView() 方法中,获取错误参数并执行从中获取错误字符串所需的操作,这基本上相当于调用 localizedDescription 方法,并将其传递给对 NSLog 的调用。 Documentation is here .

然后您可以在日志中读取错误消息,如果使用 iOS 模拟器,则可以在 OS X 上的 Console.app 中读取,如果使用实际的 iOS 设备,则可以在 Xcode 管理器窗口中设备的控制台部分中读取。

关于ios - 德尔福 TWebBrowser 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19928281/

相关文章:

ios - CollectionView - 每个部分的列数不同

ios - 如何使用 QuickBlox 在 Swift 中创建返回当前时间和日期之后发生的事件的查询

delphi - 如何在Delphi XE2上调试2个dll?

windows - 用于 Linux 的 Delphi 交叉编译器

android - 如何在应用程序最小化时更新 UI

javascript - 如何在移动设备上正确执行 Google oauth2 javascript 工作流程?

ios - UIRefreshControl 出现在 Collection View 项的顶部而不是后面

ios - 如何更新版本 Pod 包?

Delphi:类似 FireFox 中的 AnimateWindow

jquery - 为什么我不能在不同的页面上调用同一个 Google map ? jQuery 移动