iOS 7(及更新版本)无法在新的浏览器窗口中打开PDF

atr*_*roy 2 web-applications jspdf ios7

因为iOS7存在,我在使用jsPDF时遇到了大麻烦.我们开发了一个Web应用程序,并使用jsPDF即时创建PDF.我们在新的Safari窗口中打开PDF,以便用户可以访问Adobe Reader以通过Mail发送PDF或执行其他操作.在iOS6中这没问题,但在iOS7中你无法data:application/pdf;base64在新窗口中打开链接!请注意,仅当您将Web App添加到主屏幕时才会发生这种情况.

如果有人有解决方案,解决方法或其他有用的信息,我很乐意听到.

atr*_*roy 5

有一个解决方案!创建一个html文件(例如pdf.html)并添加

<!DOCTYPE html><html>
<head>
    <title></title>
</head>
<body>
<script>
    document.location.href = document.location.hash.substr(1);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

创建一个链接

<a class="btn btn-default" id="pdfData" ng-show="isMobile && pdfReady" ref="app/views/pdf.html" target="xxx">
Download PDF
</a>
Run Code Online (Sandbox Code Playgroud)

在"渲染"你的pdf之后获取datauristring并将其作为哈希添加到你的链接.

var pdfData = doc.output('datauristring');
var element = document.getElementById('pdfData');
element.href = "app/views/pdf.html#" + pdfData;
element.target = "xxx";
$scope.pdfReady = true; // show download link
Run Code Online (Sandbox Code Playgroud)

现在,如果用户单击下载链接,则会在safari中打开一个新窗口并显示pdf