无法使用 ionic 5+ 中的 ionic 文件传输插件下载文件

Unable to download file using ionic file transfer plugin in ionic 5+

我在这里使用 ionic 文件传输插件下载文件,每当我尝试下载文件时,我都会遇到以下错误

而且每次我构建文件时,我都需要在 android 中添加以下代码

public class FileProvider extends androidx.core.content.FileProvider

此下载还有其他选择吗?我检查了电容器站点,但我不确定如何在其中使用文件存储插件,下面是我使用文件传输的代码

 pdfUrl = 'https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf';


  constructor(private transfer: FileTransfer, private file: File) {}

  download() {
    const fileTransfer: FileTransferObject = this.transfer.create();
    const url = this.pdfUrl;
  fileTransfer.download(url, this.file.dataDirectory).then((entry) => {
    console.log('download complete: ' + entry.toURL());
    this.saveData = entry.toURL();

  }, (error) => {
    // handle error
    console.log(error);
  });

您可能需要创建一个 whitelist - 通过 NPM 下载插件

$ cordova plugin add cordova-plugin-whitelist

并将以下内容添加到 config.xml

<access origin="*" subdomains="true" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

在 Android 上,cordova-plugin-file-transfer 需要 cordova-plugin-whitelist

使用 npm install cordova-plugin-whitelist 安装它,然后 运行 npx cap update

另外,cordova-plugin-file-transfer需要你要写入的文件的路径,你传递了一个目录,你应该把fileTransfer.download(url, this.file.dataDirectory)改成fileTransfer.download(url, this.file.dataDirectory + '/NatureDeepReview.pdf')

尝试以下操作:

首先添加插件:cordova-plugin-whitelist

接着在config.xml添加下面的<access origin="*" />

用于回答问题的参考是:
https://github.com/ionic-team/capacitor/issues/1199

检查您的 android 清单文件中的权限,然后重试,如果您的清单文件确定您添加了权限,那么您必须检查您的目标路由。

在您的 android 清单文件中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />