首先,对不起,如果我的英语不好。
然后,这是我的问题:
我尝试使用 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);
}
}
谢谢你的帮助