我有的
我 在必须访问 SkyDrive 文件的浏览器中运行WEB应用程序。我使用WL.js
提供的不错的接口来访问当前经过身份验证的用户的文件列表:
function openFromSkyDrive() {
WL.fileDialog({
mode: 'open',
select: 'single'
}).then(
function (response) {
var files = response.data.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
log(file.name);
WL.download({ "path": file.id + "/content" }, onDownloadFileCompleted).then(
function (response) {
var r = response;
},
function (responseFailed) {
log("Error downloading file: " + responseFailed.error.message);
});
//TRIED TO USE SIMPLE GET CALL TOO, DIDN'T WORKED AS WELL
/* var url = file.link;
WL.api({ path: url,
method: "GET"
}).then(
function (response) {
log("Downloaded : " + response.name + ", ID: " + response.id)
},
function (responseFailed) {
"Error calling API: " + responseFailed.error.message;
}
); */
}
},
.....
);
}
一切都很好,很干净。
问题
当我使用WL.download
文件的下载在浏览器中开始时,浏览器会加载文件,但我需要将文件内容加载到我的 javascript 中,这样我就可以直接从我的应用程序处理内容。
请注意,我已经尝试使用WL.api
具有GET
不同路径的方法(我尝试了文件对象中的所有可用方法)但它失败了:或者它返回一个错误,或者什么也没有。
WinJS
似乎提供XHR
调用方法,但我不能使用它,因为我正在编写网络应用程序并且WinJS
仅供桌面使用。
问题
如何处理从 skydrive 下载/下载文件的内容?是否有可能无需手动创建框架和 XHR 调用定义?