5 js下载pdf文件下载至安卓手机端和苹果手机端
时间: 2024-01-23 13:03:57 浏览: 559
在安卓和苹果手机端,你可以使用以下代码在H5页面中下载PDF文件并保存至手机本地:
```
function downloadPDF() {
var url = "https://example.com/example.pdf"; // PDF文件的下载链接
var filename = "example.pdf"; // PDF文件的文件名
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = function() {
if (this.status === 200) {
var blob = new Blob([this.response], {type: "application/pdf"});
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, filename); // IE浏览器下载
} else {
var downloadUrl = URL.createObjectURL(blob);
var link = document.createElement("a");
link.href = downloadUrl;
link.download = filename;
link.style.display = "none";
document.body.appendChild(link);
link.click();
setTimeout(function() {
document.body.removeChild(link);
window.URL.revokeObjectURL(downloadUrl);
}, 100);
}
}
};
xhr.send();
}
```
在上述代码中,我们首先定义了要下载的PDF文件的下载链接和文件名,然后通过XMLHttpRequest对象发送GET请求获取PDF文件的二进制数据。在获取到二进制数据后,我们将其封装成一个Blob对象,并通过URL.createObjectURL()方法生成一个下载链接,最后创建一个a标签并模拟点击以启动下载。如果是IE浏览器,我们则通过window.navigator.msSaveOrOpenBlob()方法直接下载。
需要注意的是,在不同的手机浏览器中,下载PDF文件的方式可能略有不同,具体可以根据浏览器类型进行适配。同时,在下载完成后,需要将下载链接从浏览器中释放,避免占用浏览器内存。上述代码中,我们通过setTimeout()函数在下载完成后延迟100ms再释放下载链接,以确保文件已经下载完成。
阅读全文