我已经成功保存了一个网页(x / html),但我还想保存其中包含的图像和mp4视频,以便在离线模式下进一步显示。
我可以访问iOS文件系统,所以我通过AJAX请求获取代码来保存html,然后将其保存到文件中。
我真的不知道如何对视频和图片做同样的事情。我有一个服务器,我可以从我的应用程序发送查询,因此它只显示我需要下载的内容,并在必要时使用最佳标头。我只是不知道如何从客户端“下载”它( Javascript )。
提前感谢您的帮助。
答案 0 :(得分:2)
您可以使用FileTransfer
对象将远程图像下载到本地文件。
这是最新的官方示例摘录:
// !! Assumes filePath is a valid path on the device
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");
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=="
}
}
);
答案 1 :(得分:0)
你只能本地做我害怕。 我是通过我使用NSURLConnection编写的FileDownload PhoneGap插件来完成的。我传入url通过Javascript和目标位置下载到插件(它甚至给我下载进度)。
答案 2 :(得分:0)
尚未测试过,但PhoneGap的文档看起来非常有前景http://docs.phonegap.com/en/1.0.0/phonegap_file_file.md.html
答案 3 :(得分:0)
我在我的ios应用程序项目中使用了此代码段:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);
var target_directory="";
function fail() {
//alert("failed to get filesystem");
}
function downloadImage(url, filename){
alert("download just started.");
try{
var ft = new FileTransfer();
ft.download(
url,
target_directory + filename,
function(entry) {
//alert("download complete!:" + entry.nativeURL ); //path of the downloaded file
},
function(error) {
//alert("download error" + error.code);
//alert("download error" + JSON.stringify(error));
}
);
}
catch (e){
//alert(JSON.stringify(e));
}
}
function success(fileSystem) {
target_directory = fileSystem.root.nativeURL; //root path
downloadImage(encodeURI("http://upload.wikimedia.org/wikipedia/commons/2/22/Turkish_Van_Cat.jpg"), "cat.jpg"); // I just used a sample url and filename
}