iOS / Phonegap:使用FileTransfer响应

时间:2013-07-18 05:45:01

标签: ios cordova

首先,抱歉,如果我的英语不好。

然后,这是我的问题:

我尝试使用PhoneGap 2.8.1为iOS制作应用程序。 Evrything在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);
}

}

感谢您的帮助

0 个答案:

没有答案