离子框架windows phone,image / pdf文件下载并存储在手机内存中

时间:2016-02-10 05:45:00

标签: android cordova windows-phone-8 ionic-framework cross-platform

我们使用ionic frameworkandroidios和Windows创建了一个混合应用。

因为我们有文件下载等要求并将其存储在手机/ SD卡内存中。

基本上我们从restApi获取base64数据,我们正在转换为blob数组。像这个例子Cordova-Android-Camera: How to save base64 encoded jpg to Android file system

我们可以将base64转换为blob,并在android和ios中使用此代码FileWriter.write(blob)保存文件。

但Windows手机我认为它不支持blob转换,并且在此链接中https://github.com/apache/cordova-plugin-file他们提到cordova-plugin-file不支持FileReader.readAsArrayBuffer或FileWriter.write(blob)。

我们可以使用任何方法将windows phone转换为文件。

我们也尝试直接从某些链接保存图像,但我认为我们需要写权限才能在windows中存储文件,我们不知道在哪里设置windows phone的写权限。

1 个答案:

答案 0 :(得分:1)

我已经在我的一个应用程序中完成了它并且工作得很好。请做以下事项:

在js中编写代码:

if(window.FileTransfer){
            try{
                console.log("filesys " + filesys);
                console.log("filesys root " + filesys.root);
                console.log("filesystem root path " + filesys.getRootPath);
                var filePath = filesys.root().toURL() + "/" + fileName;
                console.log("downloading file " + JSON.stringify(remoteData) + " at " + filePath);

                var fileTransfer = new FileTransfer();
                fileTransfer.download(
                    uri,
                    filePath,
                    function(entry) {
                        var retEntry = function(entry){
                            device.hideSpinner();
                            console.log("file downloaded " + entry.toURL());
                            success(entry);
                        }

                        retEntry(entry);
                    },
                    function(error) {
                        device.hideSpinner();
                        console.log("download error source " + error.source);
                        console.log("download error target " + error.target);
                        console.log("upload error code" + error.code);
                        error(error);
                    }
                );
            }catch(e){
                device.hideSpinner();
                device.alert("error " + e);
            }           }else{
            device.hideSpinner();

            console.log("opening the file");
            error();
            window.open(uri, '_blank', 'location=yes');             }

这是正常的文件下载代码。

请安装以下插件以使其正常工作。

1)cordova-plugin-file“文件”https://github.com/apache/cordova-plugin-file

2)cordova-plugin-file-transfer“文件传输”https://github.com/apache/cordova-plugin-file-transfer

3)cordova-plugin-inappbrowser“InAppBrowser”https://github.com/apache/cordova-plugin-inappbrowser

希望它会对你有所帮助。