我想从服务器下载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无法帮助我。
我还能做什么?
答案 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
);
}