我正在开发一个 Phonegap/Cordova 应用程序,使用 Cordova 2.0,并且在 iOS 6 可用后 - 我们突然开始遇到问题。它在文件对象的 readAsText 方法中。
这是代码的一部分。我们使用 facebook SDK 发布 Facebook Single Sign-On,所以我们有一个文件,写在一个文件夹中。然后我们尝试读取它并从中获取令牌。
等等 - 在 iOS 4 和 iOS5 上它正在工作 - 即你会看到两个警报 - 111 和 222。但在 iOS6 上,第二个警报不会发生。或者换句话说 - 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
函数“fail”根本不会触发,而且——所有这些都在 try-catch 中——但它也不会抛出异常。
而且 - 在 iOS 4/5 上它只发生一次,但在 iOS 6 上它发生了几次,就好像你在一个按钮上单击了几次然后代码执行。
有没有人遇到过这样的bug?