1

我正在开发一个 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?

4

1 回答 1

2

已知问题,显然有一个修复: https ://issues.apache.org/jira/browse/CB-1219

https://github.com/apache/incubator-cordova-js/pull/22

但我还没有测试它。

于 2012-09-27T12:25:14.180 回答