私は Phonegap/Cordova アプリに取り組んでおり、Cordova 2.0 を使用しています。iOS 6 が利用可能になった後、突然問題が発生し始めました。これは、ファイル オブジェクトの readAsText メソッドにあります。
これがコードの一部です。facebook SDK を使用して Facebook シングル サインオンをリリースするため、フォルダに書き留めたファイルがあります。次に、それを読み取ってトークンを取得しようとします。
そのため、iOS 4 と iOS5 では機能しています。つまり、111 と 222 の 2 つのアラートが表示されます。しかし、iOS6 では 2 番目のアラートは発生しません。つまり、ファイルがそこにあることがわかりますが、onloadend コールバックはトリガーされません。
// start the file interaction:
window.requestFileSystem(
LocalFileSystem.PERSISTENT,
0,
function(fileSystem) {
fileSystem.root.getFile(
"FacebookData/facebookData",
null,
function(fileEntry) {
fileEntry.file(
function(file) {
alert('111');
var reader = new FileReader();
reader.onloadend = function(evt) {
alert('222');
// do something with the file ..
}; // end of onloadend
reader.readAsText(file);
},
fail
); // end fileEntry.file
},
fail
); // end getfile
},
fail
); // end window.requestFileSystem
関数「失敗」はまったくトリガーされません。また、これらはすべて try-catch 内にありますが、例外もスローされません。
また、iOS 4/5 では 1 回だけ発生しますが、iOS 6 では、ボタンを数回クリックしてからコードが実行されたかのように、数回発生します。
このようなバグに遭遇した人はいますか?