微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – Cordova 3.1上的文件传输下载文件问题

我目前正在使用cordova 3.1创建我的第一个web应用程序.我很新,所以请光临我.

在这个应用程序中,我需要能够将文件下载到手机然后打开它,但我似乎无法通过如何下载文件.

我使用cordovas doc页面文件传输代码. Everyting随CLI安装.

这是我走了多远:

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
   download();
}    

function download(){
        var filePath = '/mnt/sdcard';
        var fileTransfer = new FileTransfer();
        var uri = encodeURI("https://www.dropBox.com/s/27bxw65u4ga5is0/test.pdf");

        fileTransfer.download(
            uri,
            filePath,
            function(entry) {
                console.log("download complete: " + entry.fullPath);
            },
            function(error) {
                console.log("download error source " + error.source);
                console.log("download error target " + error.target);
                console.log("upload error code" + error.code);
            },
            false,
            {
                headers: {
                    "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
                }
            }
        );
}

config.xml中

<access origin="*" />
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>

和我的清单

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

我得到的错误

 E/FileTransfer(878):     {"target":"\/sdcard\/test.pdf","source":"https:\/\/www.dropBox.com\/s\/27bxw65u4ga5is0\/tes t.pdf","http_status":0,"code":1}
 E/FileTransfer(878): java.io.FileNotFoundException:/sdcard/test.pdf: open Failed: EACCES (Permission denied)
 E/FileTransfer(878):   at libcore.io.IoBridge.open(IoBridge.java:416)         E/FileTransfer(878):     at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
 E/FileTransfer(878):   at    org.apache.cordova.CordovaResourceApi.openOutputStream(CordovaResourceApi.java:290)
 E/FileTransfer(878):   at org.apache.cordova.CordovaResourceApi.openOutputStream(CordovaResourceApi.java:271)
 E/FileTransfer(878):   at org.apache.cordova.filetransfer.FileTransfer$4.run(FileTransfer.java:711)

我花了将近2天的时间试图解决这个问题而没有成功.所以任何帮助都会非常有用.

编辑:已解决

删除Cordova 3.1并手动安装2.7.0并使其正常工作.

解决方法:

不确定3.1,但对于最新版本的Cordova(3.3),较新的(1.0.0)版本的File使用文件系统URL而不是文件路径.像这样的东西:

cdvfile://localhost/persistent/path/to/file

请参阅本文档底部的注释:https://github.com/apache/cordova-plugin-file-transfer/blob/31ac00d3ae35f9ca280cf4e6c9edc9df23ea95b5/doc/index.md

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐