无法在离子 5+ 中使用离子文件传输插件下载文件

Posted

技术标签:

【中文标题】无法在离子 5+ 中使用离子文件传输插件下载文件【英文标题】:Unable to download file using ionic file transfer plugin in ionic 5+ 【发布时间】:2021-09-04 00:41:43 【问题描述】:

我在这里使用离子文件传输插件下载文件,当我尝试下载文件时,我得到以下错误

而且每次我构建一个文件时,我还需要在 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);
  );

【问题讨论】:

【参考方案1】:

你可能需要创建一个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://*/*" />

【讨论】:

【参考方案2】:

在 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')

【讨论】:

【参考方案3】:

尝试以下方法:

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

其次在config.xml中添加以下&lt;access origin="*" /&gt;

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

【讨论】:

【参考方案4】:

检查你的android清单文件中的权限,如果你的清单文件确定你添加了你的权限,那么你必须检查你的目标路线。

在您的 android 清单文件中

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

【讨论】:

这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于无法在离子 5+ 中使用离子文件传输插件下载文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用离子5中的离子相机插件将图像存储在数据库中

如何在没有下载的情况下在离子应用程序中显示pdf文件

如何添加离子/离子2 /离子3 /离子4的本地cordova插件?

ios的离子在哪里存储json文件?

MS ADAL 离子 Cordova 插件

如何使用离子devapp运行本机相机