for-loop不适用于cordova

时间:2014-02-08 11:00:09

标签: for-loop cordova

我有一个querymobile / cordova应用程序。我有一个for循环功能。如果我在浏览器中尝试它,它可以运行,但在我的平板电脑上,他会在循环开始前停止。我没有在eclipse中得到错误。

这是我的代码

    function listPlan(){

        alert("try to parse ics");
        cal = $.parseIcs('sdcard/ical/'+aktFile);
        console.log(cal);

        alert('daten anzeigen');
        for (var i=0; i<cal.event.length; i++) {

            alert(i);
            $('#roosters').append('<div data-role="collapsible"><h3>'+cal.event[i].dtstart[0].value+'</h3></div>');

        }

        $('#roosters').collapsibleset('refresh');

    }

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以使用ajax调用访问SD卡上的文件。

尝试使用cal = $.parseIcs('file:///sdcard/ical/'+aktFile);

如果它仍然不起作用,你可能应该使用phonegap文件api来获取文件吗?


编辑:

我已经进行了一些测试来检查sdcard上的文件访问,并使用不同的URL在Gingerbread,Jelly bean和KitKat上进行ajax调用:

  • 'sdcard / test.txt'(就像你在初始代码中使用的那样):没有 在我的测试设备上工作
  • '/ sdcard / test.txt':适用于姜饼和果冻豆
  • 'file:///sdcard/test.txt':适用于姜饼和果冻豆
  • 'file://sdcard/test.txt':适用于姜饼,但不适用于果冻豆

没有人使用kitkat(似乎新的webview增加了一些限制)。

所以看起来除非你用kitkat测试过,否则使用$ .parseIcs应该可以工作。

问题可能来自您文件中的某些字符编码?您可以尝试在parseCalendar函数中添加一些调试代码,以了解在解析过程中没有添加任何事件的原因。

EDIT2

令人惊讶的是,在我的kitkat设备上,xhr访问SD卡上的文件需要在androidmanifest.xml中添加行<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />