无法使用 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" />
我在这里使用 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" />