2

まず、私の英語が下手で申し訳ありません。

次に、ここに私の問題があります:

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);
}

}

ご協力いただきありがとうございます

4

0 に答える 0