在 Ionic 4 中将 PDF 保存到设备

Save PDF to device in Ionic 4

我有这个代码,它可以是 运行 设备准备就绪后 因为它在辅助路由上。我现在正在 Android

import { File } from "@ionic-native/file/ngx";
import { FileTransfer, FileTransferObject } from "@ionic-native/file-transfer/ngx";
constructor(private _transfer: FileTransfer,
                private _platform: Platform,
                private _file: File){

}

startDownload(file: XmatFile): void {
        this.docsLoading = !0;
        let path = void 0;
        let visualPath = "";
        if (this._platform.is("ios")) {
            path = this._file.documentsDirectory;
            visualPath = path;
        }
        else {
            path = this._file.externalRootDirectory + "Download/";
            visualPath = path.replace("file://", "");
        }
        this._checkPaths(path);
        const fileTransfer: FileTransferObject = this._transfer.create();
        fileTransfer.download(file.url, path + `tmp_${+new Date()}.pdf`, true, {
            "content-type": mobSfcContentTypes.pdf
        })
        .finally(() => this.docsLoading = !1)
        .then((downloadedFile) => {
            (window as any).resolveLocalFileSystemURL(path, (dir) => {
                dir.getFile(file.fileName, {create: true}, (newFile) => {
                    newFile.createWriter((fileWriter) => {
                        fileWriter.write(downloadedFile);
                        fileWriter.onwrite = () => {
                            this._snack(!0, `File scaricato in ${visualPath}`);
                        };
                    }, () => {
                        this._snack(!1, `Errore salvataggio in ${visualPath}`);
                    });
                });
            });
        }, (error) => {
            console.warn("mob-sfc-help => DOC download error", error);
            this._sfcFunctionsSrv.showErrorAlert(`Non è stato possibile scaricare il file ${file.fileName}.
            <br />Si prega di riprovare più tardi ed eventualmente aprire un ticket`);
        });

    }

我有问题。下载速度超快并保存了两个文件,但两个文件都非常小(几个字节),而目标 pdf 大约为 2MB。

我是不是做错了什么?

我是这样解决的

import {HTTP} from "@ionic-native/http/ngx";

export class MyComponent {


constructor(private _nativeHttp: HTTP) {
}

doDownloadToDevice(file: MyFileModel):void {
    this._spinner.show();
    this._nativeHttp.downloadFile(file.url, {}, {}, this._downloadPath)
        .finally(() => this._spinner.hide())
        .then((_r_) => {
            console.info("SUCCESS");
        }, (e) => {
            console.warn("Download error", e);
        });
}

希望对您有所帮助。