1

私は、HTML5、Javascript、css3 で PhoneGap を使用して iOS および Android 用にコンパイルするアプリを作成しています。調査情報を収集し、Ajax 呼び出しを介してオンライン ホストにアップロードします。最近、アップロード コードが機能しなくなったように見えるまで、これは非常にうまく機能していました。そうではありません!iPad では成功と表示されますが、実際には何もホストに到達しません。これは非常に奇妙です。ここの記事に基づいて Ajax 呼び出しを書き直そうとしましたが、うまくいきませんでした。

iOS - 6.1.3、PhoneGAP 2.7.0、PhoneGap/Adobe Build 使用。

これはアップロード作品です...

function sendToWeb(){
var errorflag = false;
db.transaction(function (tx) {
    tx.executeSql("SELECT weburl FROM settings", [], function(tx, results){
        var webURL = results.rows.item(0).weburl;
            tx.executeSql("SELECT * FROM surveypretransfer WHERE uploaded = '0'",[], function(tx, results){
                if (results.rows.length == 0) {
                    alert("You have no surveys waiting to upload");
                } else {
                    alert("You have " + results.rows.length + " surveys waiting to upload");
                    for (var i=0; i < results.rows.length; i++) {
                        var responseURL = webURL + "/feeds/saveinfo.php";
                        var responseString = results.rows.item(i).responsestring;

                        var localid = results.rows.item(i).id;
                        //alert(localid);
                        $.ajax({
                            type: 'POST',
                            data: responseString,
                            url: responseURL,
                            timeout: 30000,
                            success: function(data) {
                                alert('Success!' + data.join('\n'));

                            },
                            error: function(data) {
                                alert(data.join('\n'));
                                console.log("Results: " + localid);
                                alert("Error during Upload.  Error is: "+ data.statusText);
                            }
                        }); //ajax
                    }; //for loop
                    alert("You have successfully uploaded "+ results.rows.length + " survey results");
                    tx.executeSql("UPDATE surveypretransfer SET uploaded = '1' WHERE uploaded = '0'");
                }; //if statement
            });  //tx.execute
    }); 
}, errorCB);
}

iPad に読み込まれると、2 つのアラートのどちらも発生しません。Android では正常に動作し、以前は iPad で動作していたので、何が変わったのかわかりません。

更新: これは WiFi のみの iPad にのみ適用されるようです。私がテストしたすべての 3G は問題ありませんでした。それを考えてください!

Config.XML contains app id = "com.mydomain.myapp" (as an example)
URL for upload is "http://customer.mydomain.com/feeds/saveinfo.php?..."
Also added line 'access origin="http://mydomain.com" subdomains="true" '

まだ結果が出ていません。誰かが同様の問題を見ている/持っていますか? 誰かが私の間違いを見ますか?

4

1 に答える 1