0

我想我会发布这个,因为它可能对其他人有用,在 Android/Cordova 混合应用程序中提交文件时,我一直在努力处理错误反馈。以下代码块应该使它更容易 - 但是非常欢迎任何改进的指针。

    fail: function(error) { 
        var logger = cordova.require("salesforce/util/logger");

        switch(error.code)
        {
            case FileError.NOT_FOUND_ERR:
                logger.logToConsole("File Not Found");
                break;
            case FileError.SECURITY_ERR:
                logger.logToConsole("Security Error");
                break;
            case FileError.ABORT_ERR:
                logger.logToConsole("Abort error");
                break;
            case FileError.NOT_READABLE_ERR:
                logger.logToConsole("Not Readable");
                break;
            case FileError.ENCODING_ERR:
                logger.logToConsole("Encoding Error");
                break;
            case FileError.NO_MODIFICATION_ALLOWED_ERR:
                logger.logToConsole("No Modification Allowed");
                break;
            case FileError.INVALID_STATE_ERR:
                logger.logToConsole("Invalid State");
                break;
            case FileError.SYNTAX_ERR:
                logger.logToConsole("Syntax Error");
                break;
            case FileError.INVALID_MODIFICATION_ERR:
                logger.logToConsole("Invalid Modification Error");
                break;
            case FileError.QUOTA_EXCEEDED_ERR:
                logger.logToConsole("Quota Exceeded");
                break;
            case FileError.TYPE_MISMATCH_ERR:
                logger.logToConsole("Type Mismatch Error");
                break;
            case FileError.PATH_EXISTS_ERR:
                logger.logToConsole("Path Already Exists Error");
                break;
        }
        logger.logToConsole("Error code:: " + error.code);
    }
4

1 回答 1

0

这是导致问题的文件保存例程(原来它需要 CREATE: true 标志)。希望它有帮助。

saveLocal: function (file, data, sync) {

        //Accept the JSON of an Inspection object
        cordova.require("salesforce/util/logger").logToConsole("Writing to " + file);

        //Write data to the requested file
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,                     
                function(fileSystem) {
                    cordova.require("salesforce/util/logger").logToConsole("Writing to " + file);

                    fileSystem.root.getFile(file, {create: true}, 
                            function(fileEntry) {
                                cordova.require("salesforce/util/logger").logToConsole("Create writer");

                                fileEntry.createWriter(function (writer) {
                                        writer.write(JSON.stringify(data));

                                         //Trigger to send data to salesforce
                                         if (sync) {sync();}

                                         //send to event if registered
                                         if (onsaveend) {onsaveend(data);}

                                }, anytime.fail);

                    }, anytime.fail);
                }, anytime.fail);
    }
于 2013-02-05T17:28:50.547 回答