下载图像并在iPhone Phonegap应用程序中本地保存

时间:2010-09-02 09:10:21

标签: javascript iphone download offline cordova

我已经成功保存了一个网页(x / html),但我还想保存其中包含的图像和mp4视频,以便在离线模式下进一步显示。

我可以访问iOS文件系统,所以我通过AJAX请求获取代码来保存html,然后将其保存到文件中。

我真的不知道如何对视频图片做同样的事情。我有一个服务器,我可以从我的应用程序发送查询,因此它只显示我需要下载的内容,并在必要时使用最佳标头。我只是不知道如何从客户端“下载”它( Javascript )。

提前感谢您的帮助。

4 个答案:

答案 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
}