Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Phonegap文件API_Api_File_Cordova_Xmlhttprequest - Fatal编程技术网

Phonegap文件API

Phonegap文件API,api,file,cordova,xmlhttprequest,Api,File,Cordova,Xmlhttprequest,经过数周的研究,我决定使用Phonegap的文件API来更新我的应用程序。在Phonegap Google小组中,我发现我必须经历以下步骤: 使用XHR加载此文件 将文件写入文件系统 检查互联网连接 如果是,请使用FileTransfer对象下载最新文件 如果没有,请使用缓存文件 我已经完成了步骤1,我的文件现在正在XHR中加载。现在我被困在第二步。我尝试了,但是没有成功,Phonegap的文件API上的信息也不是很清楚。有人能帮我吗 以下是我的XHR脚本: <script languag

经过数周的研究,我决定使用Phonegap的文件API来更新我的应用程序。在Phonegap Google小组中,我发现我必须经历以下步骤:

  • 使用XHR加载此文件
  • 将文件写入文件系统
  • 检查互联网连接
  • 如果是,请使用FileTransfer对象下载最新文件
  • 如果没有,请使用缓存文件
  • 我已经完成了步骤1,我的文件现在正在XHR中加载。现在我被困在第二步。我尝试了,但是没有成功,Phonegap的文件API上的信息也不是很清楚。有人能帮我吗

    以下是我的XHR脚本:

    <script language="javascript" type="text/javascript">
    function loadHome() {
        var request = new XMLHttpRequest();
        request.open("GET", "file:///sdcard/Download/home.json", true);
        request.onreadystatechange = function() {//Call a function when the state changes.
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
    
                var home = JSON.parse(request.responseText);
                var data = "<table cellspacing='0'>";
                for (i = 0; i < home.length; i++) {
                    data += "<td>";
                    data += "<a href='" + home[i].link + "'/>";
                    data += "<img src='" + home[i].img + "'/>";
                    data += "<div class='dsc'>" + home[i].expo + "<br><em>";
                    data += home   [i].datum + "</em></div></a></td>";
                }
                data += "</table>";
                var twitter = document.getElementById("home2");
                twitter.innerHTML = data;
            }
        }
    }
    console.log("asking for home");
    request.send();
    
    </script>
    
    
    函数loadHome(){
    var request=new XMLHttpRequest();
    请求。打开(“获取”file:///sdcard/Download/home.json“,对);
    request.onreadystatechange=function(){//在状态更改时调用函数。
    if(request.readyState==4){
    if(request.status==200 | | request.status==0){
    var home=JSON.parse(request.responseText);
    var数据=”;
    对于(i=0;i
    这是我第一次尝试使用filewriter:

    <script type="text/javascript" charset="utf-8">
    
    document.addEventListener("deviceready", onDeviceReady, false);
    
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    }
    
    function gotFS(fileSystem) {
        fileSystem.root.getFile("file:///sdcard/Download/home.json", {create: true, exclusive: false}, gotFileEntry, fail);
    }
    
    function gotFileEntry(fileEntry) {
        fileEntry.createWriter(gotFileWriter, fail);
    }
    
    function gotFileWriter(writer) {
        writer.onwriteend = function(evt) {
            console.log("contents of file now 'some sample text'");
            writer.truncate(11);  
            writer.onwriteend = function(evt) {
                console.log("contents of file now 'some sample'");
                writer.seek(4);
                writer.write(" different text");
                writer.onwriteend = function(evt){
                    console.log("contents of file now 'some different text'");
                }
            };
        };
        writer.write("some sample text");
    }
    
    function fail(error) {
        console.log(error.code);
    }
    
    </script>
    
    
    文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
    函数ondevicerady(){
    requestFileSystem(LocalFileSystem.PERSISTENT,0,gotFS,fail);
    }
    函数gotFS(文件系统){
    fileSystem.root.getFile(“file:///sdcard/Download/home.json“,{create:true,exclusive:false},gotFileEntry,fail);
    }
    函数gotFileEntry(fileEntry){
    createWriter(gotFileWriter,失败);
    }
    函数gotFileWriter(writer){
    writer.onwriteend=函数(evt){
    log(“文件内容现在是‘一些示例文本’”);
    writer.truncate(11);
    writer.onwriteend=函数(evt){
    log(“文件内容现在是‘一些示例’”);
    作者:seek(4);
    写(“不同的文本”);
    writer.onwriteend=函数(evt){
    log(“文件内容现在是‘一些不同的文本’”);
    }
    };
    };
    writer.write(“一些示例文本”);
    }
    功能失败(错误){
    console.log(错误代码);
    }
    
    我对Phonegap文件Api有很多问题和挫折,因此决定制作一个简单的Api来处理它。我的Api发布在这里:


    希望能有所帮助。

    谢谢你的提示!事实上,由于本教程:谢谢你,伊莎。上帝是真实的,我很快就会得到它并开始运行。