我正在使用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数组中下载的网站 - 但它仍然无效。
答案 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)。