1

私は 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 では、ボタンを数回クリックしてからコードが実行されたかのように、数回発生します。

このようなバグに遭遇した人はいますか?

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 に答える