まず、私の英語が下手で申し訳ありません。
次に、ここに私の問題があります:
PhoneGap 2.8.1 で iOS 用のアプリを作ろうとしています。Android ではすべてが順調に進んでいます。コードを Xcode に移動して、iPad または iPhone でコンパイルしたいだけです。私が抱えている問題は、画像をアップロードするときの FileTransfer にあります。転送自体は問題なく、レスポンスコード200で終了するので成功です。次に、私のサーブは、javascript コードによって処理される XML ファイルを返すことになっています。Androidデバイスにはまったく問題がないため、サーバーは正常に動作します。
そのため、多くのテストを行いましたが、アプリには成功コールバックまたは FileTransfer.upload() に問題があるようです。このコールバック関数に単純な console.log('success') を入れるだけで問題ありません。しかし、FileUploadResult オブジェクトを使用しようとしても、何も起こりません。
そして最も奇妙なことは、アプリを閉じるために iPad または iPhone のメイン ボタンを押すと、console.log("Code = " + r. responseCode);、PhoneGap の例のように。そしてここで、実際にサーバーの応答を受信していることを最終的に確認できますが、アプリを閉じるまで何かがブロックしているようです.
コードのその部分は次のとおりです。
function onPhotoDataSuccess(imageURI) {
console.log("---> Image: "+imageURI);
// File Transfer
var options = new FileUploadOptions();
options.fileKey="file";
options.chunkedMode = false;
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
var ft = new FileTransfer();
ft.upload(imageURI, encodeURI(window.localStorage.getItem("wsURL")), win, fail, options);
// Transfer succeeded
function win(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
// Handle the XML response
}
else {
alert("No response. Please retry");
}
}
// Transfer failed
function fail(error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
}
ご協力いただきありがとうございます