Cordova:未捕获的ReferenceError:未定义FileTransfer

时间:2015-10-15 13:04:23

标签: javascript jquery cordova file-transfer

我想从服务器下载PDF文件并将其保存到该设备的本地存储中。 为此,我找到了cordova-plugin-file-transfer

运行那段代码:

var fileTransfer = new FileTransfer();
var uri = encodeURI("http://example.com/file.pdf");
var fileURL = "/Martin/Downloads/";

function openDocument() {
   fileTransfer.download(
    uri,
    fileURL,
    function(entry) {
        console.log("download complete: " + entry.toURL());
    },
    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=="
        }
    }
);
}

给了我这个问题:

  

未捕获的ReferenceError:未定义FileTransfer

我已经删除了所有平台并重新安装了它们。 之后我删除了所有插件并重新安装它们。

一个类似的thread无法帮助我。

我还能做什么?

1 个答案:

答案 0 :(得分:2)

不是函数,而是变量的init在调用device-ready之前运行。

这是适用于我的代码:

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

var fileTransfer;
var uri;
var fileURL;

// use file transfer after onDeviceReady() was called         
function onDeviceReady() {
    fileTransfer = new FileTransfer();
    uri = encodeURI('http://example.com/file.pdf');
    fileURL = '/file.pdf';
}

function openDocument() {

   fileTransfer.download(
    uri,
    fileURL,
    function(entry) {
        alert("download complete: " + entry.toURL());
        console.log("download complete: " + entry.toURL());
    },
    function(error) {
        console.log("download error source " + error.source);
        console.log("download error target " + error.target);
        console.log("upload error code" + error.code);
        alert("download error source " + error.source);
    },
    false
);
}