Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Phonegap 6.x下载文件?_Javascript_Android_Cordova - Fatal编程技术网

Javascript 如何使用Phonegap 6.x下载文件?

Javascript 如何使用Phonegap 6.x下载文件?,javascript,android,cordova,Javascript,Android,Cordova,为什么使用Phonegap将文件从远程服务器下载到Android应用程序的文件夹中如此困难 我已经试了将近一个星期了。我阅读了每一篇文章,尝试了我发现的每一个例子。我读到了Phonegap不同版本之间的差异和错误报告。我阅读并研究了关于和的官方文件。我阅读了有关在文件中正确配置权限和白名单的内容 我还想知道,我没有看到下载的文件使用手机的文件浏览器,因为Android权限设置为私人文件夹,所以我根我的手机 但以上这些都不起作用 这是我的密码。请,如果您希望提供您的贡献,不要像我经常看到的那样简单

为什么使用Phonegap将文件从远程服务器下载到Android应用程序的文件夹中如此困难

我已经试了将近一个星期了。我阅读了每一篇文章,尝试了我发现的每一个例子。我读到了Phonegap不同版本之间的差异和错误报告。我阅读并研究了关于和的官方文件。我阅读了有关在文件中正确配置权限和白名单的内容

我还想知道,我没有看到下载的文件使用手机的文件浏览器,因为Android权限设置为私人文件夹,所以我根我的手机

但以上这些都不起作用

这是我的密码。请,如果您希望提供您的贡献,不要像我经常看到的那样简单地复制/粘贴来自其他来源的代码,因为我已经自己做了

CONFIG.XML(我正在使用Phonegap构建)

该文件似乎已正确下载,但尚未下载。如果我从以下位置删除文件名(test.txt):

输出为:

MY_APP
App folder = file:///data/data/com.my_app/files/test.txt
Saving... = file:///data/data/com.my_app/files/test.txt
MY_APP
App folder = file:///data/data/com.my_app/files/
Error code = 1
Error source = http://www.enrico.io/phonegap/test.txt
Error target = file:///data/data/com.my_app/files/
编辑。
根据@Gandhi(见下面的评论)的建议,将
cordova.file.dataDirectory
更改为
cordova.file.externalRootDirectory
可以工作,但文件下载到
file:///storage/sdcard0/
和“禁止”到应用程序的数据目录/文件夹。请记住缺点:如果卸载应用程序,则不会删除应用程序的数据。

我确实了解您提到不要从链接复制过去的代码,但我仍然建议您查看这些链接,因为我相信它会帮助您@甘地。使用
cordova.file.externalRootDirectory
更改
cordova.file.dataDirectory
有效,文件已下载。非常感谢。但我仍然希望使用应用程序的数据文件夹,这样,如果卸载应用程序,下载的所有数据也将被卸载。我没能使你的第二个例子起作用。你能用第二个例子更具体地说明这个问题吗?为什么每次应用程序注销时都不清除整个文件夹呢?我将您的脚本放在
ondevicerady()
函数中,更改了要下载的文件路径,并更改了对
openFile()的调用
使用一个简单的
警报
来了解脚本是否下载了某些内容,但它没有显示任何
警报
。我得再检查一遍。我不想在注销时擦除应用程序的文件夹,因为我正在尝试使用一个应用程序下载一个json文件,其中包含有关我所在城市事件的信息,应该在启动时读取该文件。通过这种方式,应用程序可以脱机工作(而不是使用db)。每次运行时,应用程序都会检查服务器是否有新的json文件。您是否可以在chrome中检查控制台中是否有任何错误?
MY_APP
App folder = file:///data/data/com.my_app/files/test.txt
Saving... = file:///data/data/com.my_app/files/test.txt
var fileURL = cordova.file.dataDirectory + "test.txt";
MY_APP
App folder = file:///data/data/com.my_app/files/
Error code = 1
Error source = http://www.enrico.io/phonegap/test.txt
Error target = file:///data/data/com.my_app/files/