要在电容器iOS和Android中下载的base64文件

问题描述 投票:0回答:2

我有一个用 Angular 制作的应用程序,我正在使用适用于 iOS 和 Android 的电容器来打包该应用程序。 该应用程序包含我从后端请求的附件,结果是 base64 字符串。我设法在 Web 中毫无问题地下载该文件,但在移动版本中无法下载该文件。 这是下载代码。

<div *ngFor="let attachment of attachmentsInput, let i = index">
                                <div class="row pl-1 pr-1">
                                    <div class="col-lg-7">
                                        <a role="button" (click)="downloadFile(i)" class="hover">
                                            
                                            <span class="hover">{​​​​​{​​​​​attachment.name}​​​​​}​​​​​</span>
                                        </a>
                                        <a style="display: none;" id="downloadLinkId+{​​​​​{​​​​​i}​​​​​}​​​​​" [href]="attachmentsInput[i].toBeDownloaded" [download]="attachmentsInput[i].name"></a>
                                    </div>
                                 
                                </div>
                            </div>

下载文件代码:

async downloadFile(index) {​​​​​​
  this.attachmentsInput[index].toBeDownloaded = this.sanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + this.attachmentsInput[index].content);


if (this.attachmentsInput[index].toBeDownloaded)
      document.getElementById('downloadLinkId+' + index).click();
}

使用 document.getElementById 是否有问题?

android ios angular capacitor
2个回答
1
投票

从链接下载不适用于本机应用程序。为此,您需要使用Filesystem API, 例如:

import { FilesystemDirectory, Plugins } from '@capacitor/core';
const { Filesystem } = Plugins;

await Filesystem.writeFile({
    path: "filename.txt",
    data: "base64 data",
    directory: FilesystemDirectory.ExternalStorage,
  });

0
投票

有关在 Ionic 6 中使用 Capacitor 实现 PDF 下载的更多详细信息,您可以参考这篇博文:Ionic 6 Made Easy: Implementing PDF Downloads with Capacitor。 本指南应帮助您在 Ionic 应用程序中有效地从 Base64 数据下载 PDF。

https://sonaliyewle.medium.com/ionic-6-made-easy-implementing-pdf-downloads-with-capacitor-362436217aa6

© www.soinside.com 2019 - 2024. All rights reserved.