【问题标题】:PhoneGap Opening a PDF error "document could not be opened"PhoneGap 打开 PDF 错误“无法打开文档”
【发布时间】:2013-02-18 19:41:17
【问题描述】:

我目前正在使用 PhoneGap。我使用 eclipse 作为我的 IDE。我正在开发的平板电脑是三星 Galaxy Tab 10.1,android 版本 4.0.4。

现在我正在尝试通过我的应用在设备上打开 PDF。但是它不起作用。我按照此页面上的教程进行操作,https://github.com/markeeftb/FileOpener

这是我所做的更改。

-> 在 src 文件夹中,我创建了一个名为 com.phonegap.plugins.fileopener 的新文件夹 -> 我将 FileOpener.java 文件复制并粘贴到该文件夹​​中。 -> 然后在位于 xml 文件夹中的 config.xml 文件中,我添加了这一行

<plugin name="FileOpener" value="com.phonegap.plugins.fileopener.FileOpener"/>

-> 我也加了一行

<script type="text/javascript" charset="utf-8" src="fileopener.js"></script>

进入我的 index.html 文件

这里是 index.html 的代码

<!DOCTYPE HTML>
<html>
    <head>
        <title> PhoneGap </title>
        <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
        <script type="text/javascript" charset="utf-8" src="fileopener.js"></script>
    </head>
    <body>
        <h1>PDF Open Tester</h1>
        <a href="#" onclick="window.plugins.fileOpener,open('/sdcard/Course Content Files/1.pdf');">open</a>
    </body>
</html>  

正如更多信息,一旦我在我的电脑上连接了平板电脑,当我右键单击 1.pdf 并检查属性时,文件位置是 Computer\GT-P7510\Tablet

当我在平板电脑上运行这个项目并点击打开的链接时。 adobe 阅读器应用程序在主页上打开,显示“无法打开文档”。出了什么问题,为什么 PDF 不能用 Adob​​e Reader 打开?如果可以,请提供帮助,我将不胜感激。

------------------------编辑1后---------- -------------------------------------------------- ------------------------------------

我发现了正在发生的特定错误。错误是 Object # has no method 'exec'

【问题讨论】:

  • 一般来说,将/sdcard/ 硬编码到文件路径中是不好的做法。在 java 中你会使用Environment.getExternalStorageDirectory()。我不知道在phonegap中是否有等价物。但我的猜测是您的设备没有将其外部存储标记为/sdcard/,因此您正试图让它加载一个不存在的文件。
  • 我认为 getExternalStorageDirectory() 仅适用于 appcelerator。
  • 不,它是 Java API 的一部分,appcelerator 可能会使用它(不过我不知道,除了本机之外没有任何经验。)它看起来像你链接的 github 页面上的示例您可能需要在文件路径前加上file://,因此您可以尝试将网址更改为file:///sdcard/Course Content Files/1.pdf 请注意,即使这在您的设备上有效,由于外部目录不在某些位置,它仍然会失败/sdcard/ 这就是 Environment API 存在的原因,这样您的应用就不必关心它的位置。
  • 好的,所以基本上我应该将 /sdcard/ 替换为 /Environment.getExternalStorageDirectory/?
  • 用 file:/// 替换它可以正常工作,我喜欢你。我一直在尝试这样做很长时间。放弃了几次。哦,上帝,谢谢你!

标签: javascript android html cordova pdf


【解决方案1】:

FileOpener 插件需要一个 URI,而您正在向它传递一个文件路径。

改变:

'/sdcard/Course Content Files/1.pdf'

到:

'file:///sdcard/Course Content Files/1.pdf'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    相关资源
    最近更新 更多