【发布时间】:2021-06-07 09:14:15
【问题描述】:
我有一个 Angular 应用程序,我正在为 iOS 和 Android 使用电容器包装该应用程序。 该应用程序包含我从后端请求的附件,结果是 base64 字符串。我设法在网络上下载文件没有问题,但文件在移动版本中不可下载。 这是下载代码。
<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 有问题吗?
【问题讨论】:
-
你遇到了什么错误?
-
我收到此错误:“无法打开 URL 数据:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAABzEAAANWCAYAAAB+vnHgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADs ... rkJggg==: 错误域=NSOSStatusStatusErrorDomain 代码" UserInfo={_LSLine=229, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}"
标签: android ios angular capacitor