更新iOS设备上的Cordova文件插件错误代码3(Abort_Error)

时间:2015-12-02 16:59:09

标签: javascript ios iphone cordova filesystems

我正在开发Cordova项目,但是有一个文件系统插件的错误。我可以在iPhone 5S模拟器(Json和jpegs)中读写。但是在我的iPhone 6设备和iPhone 6S模拟器上,fileSystem.getFile()函数在获取新的jpg文件时总是给我错误代码3。 Json不知何故工作正常。有什么想法吗?

self.savePicture = function (fileURI, callback) {
    if(self.canSave) {
        window.resolveLocalFileSystemURL(self.dataDirectory, function(fileSystem) {
            var d = new Date().getTime();
            var folder = "pictures/";
            var filename = "pic_"+d + ".jpg";
            fileSystem.getFile(folder+filename, { create: true }, function(file) {
                file.createWriter(function(writer) {
                    writer.write(self.b64toBlob(fileURI, 'data:image/jpeg;base64,'));
                    app.log('saving ' +  filename + ' successful', 'data');
                    callback(filename);
                }, function() {
                    app.log('saving ' + filename + ' failed', 'data');
                });
            }, function() {
                app.log('getting File failed','data');
            });
        }, function() {
            app.log('resolvingLocalFileSystem failed','data');
        });
    }else{
        app.log('device cant save!', 'data');
    }
    callback('');
}

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 我必须先创建目录“pictures /”然后再创建文件。它现在适用于所有设备。 但我无法解释为什么上面的代码可以在某些设备上运行..

self.savePicture = function (fileURI, callback) {
    if(self.canSave) {
        window.resolveLocalFileSystemURL(self.dataDirectory, function(fileSystem) {
            var d = new Date().getTime();
            var folder = "pictures/";
            var filename = "pic_"+d + ".jpg";
            fileSystem.getDirectory(folder, { create: true }, function(dir) {
                dir.getFile(filename, { create: true }, function(file) {
                    file.createWriter(function(writer) {
                        writer.write(self.b64toBlob(fileURI, 'data:image/jpeg;base64,'));
                        app.log('saving ' +  filename + ' successful', 'data');
                        callback(filename);
                    }, function() {
                        app.log('saving ' + filename + ' failed', 'data');
                    });
                }, function() {
                    app.log('getting File failed','data');
                });
            }, function(){
                app.log('getting Directory failed','data');
            });
        }, function() {
            app.log('resolvingLocalFileSystem failed','data');
        });
    }else{
        app.log('device cant save!', 'data');
    }
    callback('');
}