我有一个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');
}
答案 0 :(得分:0)
我不确定您是否可以使用ajax调用访问SD卡上的文件。
尝试使用cal = $.parseIcs('file:///sdcard/ical/'+aktFile);
如果它仍然不起作用,你可能应该使用phonegap文件api来获取文件吗?
我已经进行了一些测试来检查sdcard上的文件访问,并使用不同的URL在Gingerbread,Jelly bean和KitKat上进行ajax调用:
没有人使用kitkat(似乎新的webview增加了一些限制)。
所以看起来除非你用kitkat测试过,否则使用$ .parseIcs应该可以工作。
问题可能来自您文件中的某些字符编码?您可以尝试在parseCalendar函数中添加一些调试代码,以了解在解析过程中没有添加任何事件的原因。
令人惊讶的是,在我的kitkat设备上,xhr访问SD卡上的文件需要在androidmanifest.xml中添加行<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />