Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问使用Cordova编写的文件_Javascript_Cordova_Ibm Mobilefirst - Fatal编程技术网

Javascript 访问使用Cordova编写的文件

Javascript 访问使用Cordova编写的文件,javascript,cordova,ibm-mobilefirst,Javascript,Cordova,Ibm Mobilefirst,我在worklight中使用Cordova文件API创建了一个文件。一旦写入事件完成,我就开始读取文件。我尝试在writer.onwriteend事件中编写函数调用readAsText()。但是文件没有被读取。“独家”选项与此有关吗?在read()之前一切正常,然后就没有错误,没有消息。。但我认为这不是在读文件。但一旦reader.onloadend事件发生错误: 读取错误 {“type”:“error”,“bubbles”:false,“cancelBubble”:false,“cancela

我在worklight中使用Cordova文件API创建了一个文件。一旦写入事件完成,我就开始读取文件。我尝试在writer.onwriteend事件中编写函数调用readAsText()。但是文件没有被读取。“独家”选项与此有关吗?在read()之前一切正常,然后就没有错误,没有消息。。但我认为这不是在读文件。但一旦reader.onloadend事件发生错误

读取错误 {“type”:“error”,“bubbles”:false,“cancelBubble”:false,“cancelable”:false,“lengthComputable”:false,“loaded”:0,“total”:0,“target”:{“fileName”:“file://C:\Users\IBM\u ADMIN\cordova\filesystem\persistent\RQM\ExecutionResult.xml”,“readyState”:2,“result”:null,“error”:{“code”:1},“onload开始”:null,“onprogress”:null,“onload”:null,“onbort”:null}

这是我的密码:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
        onFileSystemSuccess, fail);


function onFileSystemSuccess(fileSystem) {
alert("Created File system ");
fileSystem.root.getFile("ExecutionResult.xml", {
    create : true,
    exclusive : true
}, gotFileEntry, fail);
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.write(JsonData);

writer.onwriteend = function(evt) {
    readAfterWriting();
};
}
function readAfterWriting(){
    fileSystem.root.getFile("ExecutionResult.xml", {
        create : false,
        exclusive : false
    }, gotFile, fail);

};
} 
function gotFile(file) {
readAsText(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
    console.log("Read as text");
    console.log(evt.target.result);
};
reader.readAsText(file);
}
这是发生错误的代码。文件名显示为22。 这是显示的线条var callbackId=v.id

window.addEventListener("message", function(e){
    _consoleLog("*****PG BC***** " + e.domain + " said: " + e.data);
    var r = e.data;

    // If a result was returned
    _consoleLog("typeof result=" + (typeof r) + " r=" + r);
    if (r.length > 0) {
        // if ((typeof r == "string") && (r.length > 0)) {
        _consoleLog("Result from exec=<" + dumpObj(r, '', ' ', 2) + ">");
        eval("var v=" + r + ";");
        var callbackId = v.id;
        var cast = v.cast;
        // var temp = "+cast+"("+this.getJSONString() + ");\n"
        if (cast) {
            // _consoleLog("CAST==="+"var
            // temp="+cast+"("+JSON.stringify(v.message)+");\n");
            // eval("var temp="+cast+"("+JSON.stringify(v.message)+");\n");
            // _consoleLog("***** CAST:"+" var temp="+cast+"("+r+");");
            eval("var temp=" + cast + "(" + r + ");");
            v = temp;
        }
        // _consoleLog("After CAST="+dumpObj(v, '', ' ', 3));

        // If status is OK, then return value back to caller
        if (v.status === Cordova.callbackStatus.OK) {

            // If there is a success callback, then call it now with
            // returned value
            if ((typeof(Cordova.callbacks[callbackId]) != 'undefined') 
                && (Cordova.callbacks[callbackId] != null)) {
                if (Cordova.callbacks[callbackId].success) {
                    try {
                        Cordova.callbacks[callbackId].success(v.message);
                    } catch (e) {
                        _consoleLog("Error in success callback: " + callbackId + " = " + e);
                    }

                    // Clear callback if not expecting any more results
                    if (!v.keepCallback) {
                        delete Cordova.callbacks[callbackId];
                    }
                }
            }
            return v.message;
        }
window.addEventListener(“消息”,函数(e){
_consoleLog(“******PG BC****”+e.domain+”表示:“+e.data”);
var r=e.数据;
//如果返回了一个结果
_控制台日志(“typeof result=“+(typeof r)+”r=“+r”);
如果(r.长度>0){
//if((typeof r==“string”)&&(r.length>0)){
_控制台日志(“来自exec的结果=”);
评估(“var v=“+r+”;”);
var callbackId=v.id;
var cast=v.cast;
//var temp=“+cast+”(“+this.getJSONString()+”);\n
如果(铸造){
//_consoleLog(“CAST==”+”变量
//temp=“+cast+”(“+JSON.stringify(v.message)+”);\n“;
//eval(“var temp=“+cast+”(“+JSON.stringify(v.message)+”);\n”);
//控制台日志(“****CAST:”+“var temp=“+CAST+”(“+r+”);”);
评估(“var temp=“+cast+”(“+r+”);”);
v=温度;
}
//_consoleLog(“播放后=”+dumpObj(v),“,”,3));
//若状态为OK,则将值返回给调用者
if(v.status==Cordova.callbackStatus.OK){
//如果有一个成功的回调,那么现在用
//返回值
if((typeof(Cordova.callbacks[callbackId])!=‘未定义’)
&&(Cordova.callbacks[callbackId]!=null){
if(Cordova.callbacks[callbackId].success){
试一试{
Cordova.callbacks[callbackId].success(v.message);
}捕获(e){
_控制台日志(“成功回调中的错误:“+callbackId+”=“+e”);
}
//如果不需要任何其他结果,请清除回调
如果(!v.keepCallback){
删除Cordova.callbacks[callbackId];
}
}
}
返回v.message;
}

以下是一些实现您期望的功能的代码:

<!DOCTYPE html>
<html>
<head>
<title>FileReader Example</title>
<meta name="viewport"
    content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

<script type="text/javascript" charset="utf-8">

    onWLReady = function() {
        // Wait for PhoneGap to load
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    var wlInitOptions = {
        onSuccess : onWLReady,
        connectOnStartup : false
    };

    if (window.addEventListener) {
        window.addEventListener('load', function() {
            WL.Client.init(wlInitOptions); }, false);
    } else if (window.attachEvent) {
        window.attachEvent('onload',  function() {
            WL.Client.init(wlInitOptions);
         });
    }

    function log(txt){
        var p = document.createElement('p');
        document.getElementById("log").appendChild(p);
        p.appendChild(document.createTextNode(txt));
    }

    // PhoneGap is ready
    //
    function onDeviceReady(){
        log("onDeviceReady");
    }

    function readFile() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
            function(fileSystem) {
                fileSystem.root.getFile("ExecutionResult.xml", {
                     create : false, exclusive: false
                },
                function(fileEntry){
                    fileEntry.file(function(file) {
                        readDataUrl(file);
                        readAsText(file);
                    },
                    fail);
                },
                fail);
        }, fail);
    }

    function writeFile() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
            function(fileSystem) {
            fileSystem.root.getFile("ExecutionResult.xml", {create: true,     exclusive: true},
                    function(fileEntry) {
                        fileEntry.createWriter(
                            function(writer) {
                                writer.onwriteend = function(evt) {
                                    readFile();
                                };
                            writer.onwritestart =     function(evt){
                                    log("onwritestart");
                                };
                                writer.onwrite = function(evt){
                                    log("onwrite");
                                };
                                writer.onerror = function(evt){
                                    log("onerror");
                                };
                                writer.write("JSonData");
                            },
                            fail);
                        }
                        , fail);
            },
            fail);
    }

    function readDataUrl(file){
        var reader = new FileReader();
        log("readDataUrl...");
        reader.onloadstart = function(evt){
            log("onloadstart: " + evt.target.result);
        };
        reader.onload = function(evt){
            log("onload: " + evt.target.result);
        };
        reader.onloadend = function(evt){
            log("onloadend: " + evt.target.result);
        };
        reader.onerror = function(evt){
            log("onerror: " + evt.target.result);
        };
        reader.readAsDataURL(file);
    }

    function readAsText(file) {
        var reader = new FileReader();
        log("readAsText...");
        reader.onloadstart = function(evt){
            log("onloadstart: " + evt.target.result);
        };
        reader.onload = function(evt){
            log("onload: " + evt.target.result);
        };
        reader.onloadend = function(evt){
            log("onloadend: " + evt.target.result);
        };
        reader.onerror = function(evt){
            log("onerror: " + evt.target.result);
        };
        reader.readAsText(file);
    }

    function fail(error) {
        log("fail: "+ evt.target.error.code);
    }
</script>
</head>
<body id="content">
    <button onclick="writeFile();">Write and read file</button>
    <p id="log"></p>
</body>
</html>

文件阅读器示例
onWLReady=函数(){
//等待PhoneGap加载
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
var wlInitOptions={
onSuccess:onWLReady,
连接启动:false
};
if(window.addEventListener){
addEventListener('load',function()){
WL.Client.init(wlInitOptions);},false);
}else if(窗口附件){
attachEvent('onload',function()){
WL.Client.init(wlInitOptions);
});
}
函数日志(txt){
var p=document.createElement('p');
document.getElementById(“log”).appendChild(p);
p、 appendChild(document.createTextNode(txt));
}
//PhoneGap已经准备好了
//
函数ondevicerady(){
日志(“ondevicerady”);
}
函数readFile(){
requestFileSystem(LocalFileSystem.PERSISTENT,0,
功能(文件系统){
fileSystem.root.getFile(“ExecutionResult.xml”{
创建:false,独占:false
},
函数(文件条目){
fileEntry.file(函数(文件){
readDataUrl(文件);
readAsText(文件);
},
失败);
},
失败);
},失败);
}
函数writeFile(){
requestFileSystem(LocalFileSystem.PERSISTENT,0,
功能(文件系统){
getFile(“ExecutionResult.xml”,{create:true,exclusive:true},
函数(文件条目){
fileEntry.createWriter(
功能(编写器){
writer.onwriteend=函数(evt){
readFile();
};
writer.onwritestart=函数(evt){
日志(“onwritestart”);
};
writer.onwrite=函数(evt){
日志(“onwrite”);
};
writer.onerror=函数(evt){
日志(“onerror”);
};
writer.write(“JSonData”);
},
失败);
}
,失败);
},
失败);
}
函数readDataUrl(文件){
var reader=new FileReader();
日志(“readDataUrl…”);
reader.onloadstart=函数(evt){
日志(“onloadstart:+evt.target.result”);
};
reader.onload=函数(evt){
日志(“onload:+evt.target.result”);
};
reader.onloadend=函数(evt){
日志(“onloadend:+evt.target.result”);
};
读者