私は phoneGap、ios および android 用の jQuery モバイル アプリケーションを構築しています。私は XCode 4.5.2 および SDK 6 で cordova 2.3 を使用しています。 、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 でアプリケーションを動作させる場合、アプリを閉じて再入力すると、閉じて再度開くたびに関数が 1 つずつ起動します。
コードのどこが間違っていたのか知りたいです;
私の問題に近いものを調査して構築しましたが、唯一得られたのは、「addEventListener」がios 6でうまく起動しないということです。何度も変更しましたが、結果は同じです。
ページは正常に表示されますが、ipad3 での実行時に Java スクリプトと JQuery 関数がトリガーされないため、ページが読み込まれたときやデバイスの準備ができたときにすべてが動的に作成されるため、ページが空に見えます。
事前に感謝します。
* UPDATE : 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");
};