我正在为 ios 和 android 构建 phoneGap、jQuery 移动应用程序我正在使用带有 XCode 4.5.2 和 SDK 6 的 cordova 2.3,问题是当尝试在 ipad3(使用 ios 6.0.1)上运行该应用程序时,它无法正常运行,即使它在 ipad 2 上运行良好(使用 ios 5.1.1)
我的 HTML 页面:
<script src="js/cordova.js"></script>
<script src="js/myjs.js"></script>
<script>
function init(){
document.addEventListener("deviceready",getUserProfiles,false);
}
</script>
</head>
<body onload="init()">
“getUserProfiles”函数是“myjs.js”中的一个函数,它有一个回调函数,如下所示:
function getUserProfiles(){
readFile("directory","filename",callBackFunc);
}
function callbackfunc (){
//do stuff
}
这不适用于 ipad 3,但适用于 ipad 2,在 ipad3 上运行应用程序时的另一件事,如果我关闭应用程序然后重新输入它,每次我关闭它并重新打开它时,功能都会一个接一个地触发。
我想我的代码哪里出错了;
我已经研究了任何与我的问题相近的东西来构建它,我唯一得到的是“addEventListener”在 ios 6 上没有很好地触发我已经改变了很多次但仍然有相同的结果。
发生的情况是页面显示正常,但在 ipad3 上运行时未触发 java Script 和 JQuery 函数,因此页面看起来是空的,因为所有内容都是在页面加载或设备准备好时动态创建的。
提前谢谢。
*更新:readFile函数*
function readFile(directoryName,fileName,callBackFunc) {
alert("read = "+directoryName+"file = "+ fileName);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
var tmpPath = directoryName;
fileSystem.root.getDirectory(tmpPath, {create: false, exclusive: false}, function (dirEntry) {
var directoryReader = dirEntry;
directoryReader.getFile(fileName, {create: false, exclusive: false}, function (fileEntry){
gotFileEntry(fileEntry,callBackFunc);
}, fail);
}, fail);
}, fail);
}
function gotFileEntry(fileEntry,callBackFunc) {
fileEntry.file(function (file){
gotFile(file, callBackFunc);
}, fail);
}
function gotFile(file,callBackFunc){
readAsText(file,callBackFunc);
}
function readAsText(file, callBackFunc) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("Read as text");
console.log(evt.target.result);
jsonobject3 = evt.target.result;
callBackFunc(evt.target.result);
};
reader.readAsText(file);
}
var fail = function(evt) {
console.log("error in read from nested directory");
};