如何运行cordova / phonegap插件asynchrounously - fileTransfer插件

时间:2015-09-02 08:52:43

标签: ios cordova asynchronous phonegap-plugins cordova-plugins

我使用过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交互中输入任何文本。

0 个答案:

没有答案