【问题标题】:FileTransfer onprogress not working - PhoneGap 3.5.0FileTransfer onprogress 不起作用 - PhoneGap 3.5.0
【发布时间】:2014-09-24 20:59:12
【问题描述】:

onprogress 事件处理程序似乎从未被调用。成功回调很好,下载工作正常。我在这里做错了吗?

filesystem.root.getFile('/path/to/file', { create: true }, function (file) {

    var transfer = new FileTransfer();

    transfer.onprogress = function () {
        console.log(arguments);
    };

    transfer.download(
        'http://example.com/path/to/file',
        file.toURL(),
        function () { console.log('success'); },
        function () { console.log('error'); },
        true
    );

}, function () { console.log('error'); });

该应用使用带有最新文件和文件传输插件的 PhoneGap 3.5.0。我正在使用 iOS 8 的 iPad 上进行测试。

【问题讨论】:

    标签: javascript ios cordova


    【解决方案1】:

    您似乎缺少 onprogress 函数定义中的 arguments 变量。

    应该是:

    transfer.onprogress = function (progressEvent) {
        console.log(progressEvent);
        console.log(progressEvent.loaded); //Loaded bytes
        console.log(progressEvent.total); //Total bytes
        console.log(progressEvent.lengthComputable); //TRUE if the destination server informs total file length
    };
    

    您可以在此处找到文档:http://docs.phonegap.com/en/edge/cordova_file_file.md.html#FileTransfer

    希望对你有帮助!

    【讨论】:

    • 我的应用程序没有触发 Onprogress 功能。它与提供的示例相同。有任何想法吗? Cordova 6.3.1 - 文件传输 1.5.1
    • 这似乎是 Apache 文件传输插件中的一个已知错误,请参阅 issues.apache.org/jira/browse/CB-9936
    • @tonesforchris 是否有解决该错误的方法?我关注了你的链接,但那里的讨论似乎没有任何结果。
    • 抱歉回复延迟,不幸的是,此时我不记得具体是什么解决了这个问题,但我似乎记得模拟器和设备上的不同行为。重建应用最终成功,但我不能说是否有其他因素。
    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    相关资源
    最近更新 更多