情况:
在我的Ionic 2应用程序中有一个Documents
部分。
我需要让用户下载文件。这意味着实际上可以在手机的存储空间中使用它们,以便用户可以打开它们或做任何他想做的事情。
代码中似乎没有错误 - 但它并没有将文档保存在公共文件夹中。
我在Android设备和模拟器上测试过它。在这两种情况下,我都找不到下载的文件。
代码:
downloadFile()
{
const fileTransfer = new Transfer();
let url = 'http://www.example.com/example.txt';
fileTransfer.download(url, cordova.file.externalDataDirectory + 'example.txt').then((entry) =>
{
console.log('file object');
console.log(entry);
}, (error) => {
// handle error
});
}
THE CONSOLE :
这是模拟器控制台中的日志:
文档:
正如您所看到的,我正在使用cordova.file.externalDataDirectory
,它应该将文件保存在公用文件夹中。
正如您从documentation:
中看到的那样cordova.file.externalDataDirectory - 在哪里放置特定于应用的数据 外部存储上的文件。 (机器人)
问题:
我不知道..我可能遗漏了一些东西..你知道如何从Ionic 2 app下载文件到公共存储中吗?
答案 0 :(得分:3)
使用cordova.file.externalRootDirectory
并确保config.xml中root
的值为AndroidExtraFilesystems
<preference name="AndroidExtraFilesystems" value="root" />
例如,您可以添加Download/
。
...
var pathFile= cordova.file.externalDataDirectory + 'Download/';
fileTransfer.download(url, pathFile + 'example.txt')
.then((entry) => {
...
如果 'file:///storage/emulated/0/'
为空,您可以使用cordova.file.externalRootDirectory