【发布时间】:2016-10-14 01:30:52
【问题描述】:
我在移动开发方面遇到问题。
当我尝试从 HTML 呈现 PDF 时,我需要在我的移动设备上显示它。 到目前为止,我能够以 datauri 的形式呈现 pdf(使用 jsPDF),但在我的移动设备上显示它只是......好吧,我对此无话可说,只有沮丧:)
我正在处理一个简单的测试 HTML 文件、PhoneGap 和 jsPDF(带 Html2Canvas)
HTML
<div id="content">
<div>
<div>
Hello world
</div>
</div>
</div>
<button type="button">
Download
</button>
CSS
div {
padding: 15px;
background-color: lightblue;
border: 2px solid black;
width: 100%;
}
JS
$("button").click(function() {
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.addHTML($("#content"), function() {
pdf.output("datauri");
});
});
当然,我把它包裹在我的 $(document).ready(function() { ... }); 问题是在 iOS 上它会打开该文件,但无法以某种方式保存它...... Android 也是如此,它甚至不想打开或处理它。
我也尝试过使用 PhoneGap/Cordova 的 InAppBrowser,因为我应该使用 window.open(datauri, "_system")在其中打开设备的默认浏览器。
那也没用。
我需要打开一个 .pdf 文件(从 HTML 呈现)并让用户选择将其保存在他们的移动设备上或保存它的任何替代方法(不必在设备的存储上,可以是 Dropbox 、Google 云端硬盘等)
有没有人有这方面的经验,因为我正处于坠入被称为“精神错乱”的深空的边缘
【问题讨论】:
-
关于您在使用 InAppBrowser 在 android 设备中打开 pdf 时遇到的问题,您必须设置 window.open = cordova.InAppBrowser.open;在使用 window.open 之前。这应该可以解决您在 android 设备中打开 pdf 的问题
-
这可能会解决您的文件保存问题 - stackoverflow.com/questions/35503051/…
-
有空我会去看看。我确实读过一次iOS在保存文件时并不容易,因为文件管理有点被阻止?至于Android,据我所知,我无法在Android Marshmallow上的浏览器中打开dataUri,无法在以前的版本上尝试,但有一个测试它,只需要先配置它。
-
就我的经验而言,我发现在 iOS 中编写文件相当简单。在将文件插件更新到版本 4.2.0 后修复了 Android Marshmallow 的一些权限问题
-
我很高兴你破解了它 Jorrex。谢谢你回来。已经发布了答案。您不必再考虑称为“精神错乱”的深空 :) 干杯快乐编码
标签: javascript html cordova pdf inappbrowser