我使用过cordova filetransfer plugin。我正在使用fileTransfer插件的upload
函数上传文件。
问题是上传工作是同步的,应用程序UI在此插件上传文件时冻结。
我希望文件上传以异步方式运行,用户应该能够在上传过程中在UI上进行交互。
我的cordova应用程序针对iOS和Windows。
我使用过cordova filetransfer plugin。我正在使用fileTransfer插件的upload
函数上传文件。
问题是上传工作是同步的,应用程序UI在此插件上传文件时冻结。
我希望文件上传以异步方式运行,用户应该能够在上传过程中在UI上进行交互。
我的cordova应用程序针对iOS和Windows。
调用cordova文件传输插件的我的javascript函数如下:
var uploadVideo = function(path) {
//UPLOAD VIDEO TO SERVER
var fileURL = path;
var win = function(r) {
console.log("Code = " + r.responseCode);
};
var fail = function(error) {
console.log("An error has occurred: Code = " + error.code);
};
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var perc = Math.round(progressEvent.loaded / progressEvent.total * 100);
$('progress').val(perc);
}
};
ft.upload(fileURL, encodeURI("http://<serverpath>/<endpoint>"), win, fail, options);
};
一旦调用此脚本/函数,用户就无法与html页面交互。页面类型冻结,用户无法在文本框或任何其他UI交互中输入任何文本。