我正在使用 Cordova 2.1.0 开发一个 ios 应用程序。
即使“deviceready”事件已触发,文件系统似乎也不可用。
window.onload = function (){
document.addEventListener("deviceready", getSettings(), false);
}
function getSettings(){
fileSys('settings.txt', 'getContent', null);
}
function fileSys(fileName, action, data){
alert('hello'); // fires
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
alert('hello'); // does not fire
//rest of the script breaks
}
请求文件系统后脚本中断。但是,如果我将对 fileSys() 的调用包装在 setTimeout 中,它就可以工作。例子:
window.onload = function (){
document.addEventListener("deviceready", getSettings(), false);
}
function getSettings(){
setTimeout(function(){
fileSys('settings.txt', 'getContent', null);
}, 500);
}
function fileSys(fileName, action, data){
alert('hello'); // fires
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
alert('hello'); // fires
//script runs fine
}
有什么解决办法吗?