无法在iFrame中打开.PDF或.DOC(X)

时间:2013-03-07 10:18:19

标签: javascript html cordova iframe

我正在使用PhoneGap,Xcode,HTML和JavaScript开发iPhone应用程序。我有一个应该查看文档的iFrame(现在我正在使用测试文档而不是允许用户选择 - 稍后会发布)已经下载(再次,我选择了文档)。我尝试使用iPhone支持的.pdf文件和.docx文件,但单击我编码的按钮会在Safari中打开它们而不是iFrame。这是查看文档的代码(JavaScript和HTML);

    function viewOnline() {
        var site = "file://" + pathToRoot + "/editme.txt"
        $('#myIframe').attr('src', site);
    }

    <button onclick="viewOnline();">View Online</button></li>

    <iframe id="myIframe" style="width: 210; height: 210px;" seamless="seamless" src=""></iframe>

是否无法在iFrame中查看.pdf等文件或我的代码有问题?

** pathToRoot在应用程序的其他地方被编码(并且测试为正确) - 所以我不需要对文件路径进行硬编码,当我将其传输到设备而不是模拟器。

**如果你需要我下载文件的代码,那么我可以给你 - 只需在下面评论

**我也很喜欢使用Xcode和PhoneGap,所以如果我需要改变一些东西,如果你可以提供尽可能多的细节,那就太棒了 - 非常感谢提前

修改

我了解OpenWhitelistURLsInWebView,并启用了它并允许我从ExternalHosts数组中下载的网站 - 但它仍然无效。

2 个答案:

答案 0 :(得分:2)

这是不可能的。大多数移动浏览器都没有预先加载Adobe插件。它不是你看到的桌面。它是一个移动。所以除非你创建一个自己的浏览器并包含adobe插件(这意味着你必须编写pdf渲染逻辑,因为插件不能在移动设备上工作),所以这是不可能的。

答案 1 :(得分:1)

iFrame很少需要,并且经常被用于错误的原因。通常,您可以使用普通样式和更简单的标记来实现完全相同的操作。

此外,谷歌搜索phonegap / cordova iframe提供了许多结果,解决了iFrames的问题。有关它们的官方影响指南,请参阅iFrame Usage

在您的情况下,这些是您需要考虑的事项:

  

在PhoneGap-iOS上启用iFrame要求您将白名单列入白名单   iframe域并启用“OpenAllWhitelistURLsInWebView”。虽然这个   听起来不像是一个问题,许多应用程序想要打开具体的   MobileSafari中的站点(不是ChildBrowser),这是不可能的   启用“OpenAllWhitelistURLsInWebView”时很容易完成。

     

要更改OpenAllWhitelistURLsInWebView,请打开Cordova.plist文件   xcode中。

     

将域列入白名单。将它添加到的ExternalHosts数组中   Cordova.plist文件。只需按下ExternalHosts标题旁边的+即可   当item0出现时,请将您的域添加到值部分   (格式为example.com)。