【问题标题】:File.applicationStorageDirectory does not work on iosFile.applicationStorageDirectory 在 ios 上不起作用
【发布时间】:2015-08-18 08:29:49
【问题描述】:

我试图在我的应用上打开一个 pdf 文件。我用这个代码块;

var _myfilename = ConfigurationManager.LessonPath + "media/" + friendlyFileName;

var realFile:File = File.applicationStorageDirectory.resolvePath(_myfilename);

var destination:File = File.documentsDirectory;

destination = destination.resolvePath(_myfilename);

realFile.copyTo(destination,true);

destination.openWithDefaultApplication();

当我在 Flash 模拟器上尝试它时它可以工作,但是当我在 ios 设备上尝试它时它不起作用。

在ios设备上打开pdf文件有不同的代码块吗? 谢谢

【问题讨论】:

  • 你得到的错误是什么?
  • 我没有收到任何错误。它的行为就像没有任何动作并且没有打开pdf文件。
  • 如何将 PDF 放入 applicationStorageDirectory?
  • 我还会调试实际路径并跟踪它们以查看是否有任何内容为空,或者是否所有内容都正确填充。
  • 我不认为“openWithDefaultApplication();”应该可以在移动设备上工作。

标签: ios actionscript-3


【解决方案1】:

编辑:正如正确建议的那样,openWithDefaultApplication() 将无法在移动设备上运行。看看这个线程:AIR - Open files on Android (openWithDefaultApplication() alternative)

相反,您应该尝试使用navigateToUrl() 在完成复制到该位置后打开您的 PDF 文件,并希望您能够在外部浏览器中打开它(未经测试)。我仍然建议您使用下面的事件侦听器并等待首先复制文件。


从您提供的任何详细信息来看,我认为问题可能在于您可能没有等待文件被复制后再打开它。我假设您的代码一切正常,并且没有空值或错误。

您应该尝试使用copyToAsync 来复制您的文件,并将Event.COMPLETE 的事件侦听器添加到您的destination 文件对象中。

显然,还要监听IOError 事件,以防复制文件出错。

一旦COMPLETE 事件被触发,然后尝试打开文件。

希望这会有所帮助。

【讨论】:

  • 感谢您的建议。我做了你说的一切,但结果没有改变。会不会和 iOS 8 相关?
  • @user3115233 抱歉回复晚了。我已经更新了我的答案,请检查并尝试让我知道它是否有效。如果成功,请不要忘记投票并接受答案!谢谢。
猜你喜欢
  • 2016-07-03
  • 2012-05-29
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2015-02-02
  • 2015-05-20
相关资源
最近更新 更多