1

我正在使用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 不允许人们找到错误。有关DidFailLoadWithError '错误'的信息,请参阅:http ://qc.embarcadero.com/wc/qcmain.aspx?d=115652

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

关于如何确定返回的错误的任何建议?

4

1 回答 1

1

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

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

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

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

于 2013-11-13T14:40:04.800 回答