typescript - 如何在不使用 FileTransfer 的情况下从 Ionic 5 中的 url 下载文件

标签 typescript file ionic-framework ionic-native

我目前正在开发 Ionic 应用程序并停留在文件下载部分。我看到很多帖子都是FileTransfer现已弃用cordova 库以支持XHR 请求。

尽管我看到很多帖子说该库已被弃用,但我找不到任何示例代码(用于从 URL 下载文件)。

任何人都可以建议我从 url 下载文件的好方法而不使用 FileTransfer插入?

最佳答案

从其他服务器下载文件可能会导致烦人 CORS 错误主要是我们无法控制的。最安全的方法是绕过 Webview 并本地下载文件。您可以使用 原生 HTTP 插入
在 Ionic 4 或更高版本中使用将如下所示:

import { Component } from '@angular/core';
import { HTTP } from '@ionic-native/http/ngx';
import { File } from '@ionic-native/file/ngx';
        
@Component({
   selector: 'app-home',
   templateUrl: './you-file.html',
   styleUrls: ['./your-file.scss'],
})

export class HomePage {
    constructor(private nativeHTTP: HTTP, private file: File) {}
        
     private downloadFileAndStore() {
        //
        const filePath = this.file.dataDirectory + fileName; 
                         // for iOS use this.file.documentsDirectory
        
        this.nativeHTTP.downloadFile('your-url', {}, {}, filePath).then(response => {
           // prints 200
           console.log('success block...', response);
        }).catch(err => {
            // prints 403
            console.log('error block ... ', err.status);
            // prints Permission denied
            console.log('error block ... ', err.error);
        })
     }
  }
}

关于typescript - 如何在不使用 FileTransfer 的情况下从 Ionic 5 中的 url 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61892608/

相关文章:

c# - 在 Directory.GetFiles() 中停止隐式通配符

ios - 沙箱与 ionic 3 ios 构建中的 Podfile.lock 不同步

javascript - 测试使用 setInterval 或 setTimeout 的 Angular2 组件

javascript - Visual Studio Code 中的 .ts 文件没有智能感知

laravel - 从 storage/app/public/photos 中删除 Laravel 文件

html - 背景色改透明后卡住

node.js - 尝试构建遗留 Node/Angular/ ionic 应用程序,在node-gyp命令上失败

typescript - 如果可用则让 Zod 解析,如果不可用则跳过元素

typescript - 使用 Deno 进行 JWT 身份验证

Java初学者分配。 : insert user controlled random numbers in a file and sum it