Ionic framework 如何使用Ionic 2将文件下载到公共目录?

Ionic framework 如何使用Ionic 2将文件下载到公共目录?,ionic-framework,Ionic Framework,形势: 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

形势

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
    });
}
在我的爱奥尼亚2应用程序中,有一个
文档
部分

我需要让用户下载文件。这意味着要将它们放在手机的存储器中,这样用户就可以打开它们或做任何他想做的事情

代码中似乎没有错误,但它没有将文档保存在公用文件夹中

我已经在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
    });
}
控制台

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
    });
}
这是emulator控制台中的日志:

文档

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
    });
}
如您所见,我正在使用
cordova.file.externalDataDirectory
将文件保存在公用文件夹中

正如您可以从中看到的:

cordova.file.externalDataDirectory-将特定于应用程序的数据放在何处 外部存储器上的文件。(安卓)

问题

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
    });
}

我不知道。。我可能遗漏了什么。。您知道如何将文件从爱奥尼亚2应用程序下载到公共存储中吗?

使用
cordova.file.externalRootDirectory
并确保config.xml中的
AndroidExtraFilesystems
值中有
root

例如,您可以添加
下载/

...
    var pathFile= cordova.file.externalDataDirectory + 'Download/';
    fileTransfer.download(url, pathFile + 'example.txt')
                .then((entry) => {
...

您可以使用
'file:///storage/emulated/0/“
如果
cordova.file.externalRootDirectory
为空

请将设备连接到笔记本电脑,并使用logcat查看发生了什么情况检查我对类似问题的回答,它在笔记本电脑/桌面浏览器上也不起作用。请注意,社区已经讨论了“自制标签”的使用。”在问题标题中,我们已经决定,我们更希望标题应该用自然流畅的英语书写。