如何使用Ubuntu SDK中的Download Manager来下载文件

对于一下应用来说,我们需要使用网路上的一下文件,,并下载它们。那么我们怎么在QML应用中来下载文件呢?我们在SDK API的网页中,我们发现有一个叫做Download Manager的API。我们可以使用SingleDownload或DownloadManager来下载一个或多个文件。

首先,我们来创建一个简单的Download应用。这里我们使用“QML app with Simple UI (qmlproject)”。对于大家不熟悉Download Manager的开发者来说,我们可以使用如下的方法得到它更加详细的接口:

$qmlplugindump Ubuntu.DownloadManager 0.1通过上面的命令,我们可以得到如下的输出:

import QtQuick.tooling 1.1// This file describes the plugin-supplied types contained in the library.// It is used for QML tooling purposes only.//// This file was auto-generated by:// 'qmlplugindump Ubuntu.DownloadManager 0.1'Module {Component {name: "Ubuntu::DownloadManager::DownloadError"prototype: "QObject"exports: ["Error 0.1"]exportMetaObjectRevisions: [0]Property { name: "type"; type: "string"; isReadonly: true }Property { name: "message"; type: "string"; isReadonly: true }}Component {name: "Ubuntu::DownloadManager::Metadata"prototype: "QObject"exports: ["Metadata 0.1"]exportMetaObjectRevisions: [0]Property { name: "title"; type: "string" }Property { name: "showInIndicator"; type: "bool" }Property { name: "deflate"; type: "bool" }Property { name: "extract"; type: "bool" }Signal { name: "showIndicatorChanged" }}Component {name: "Ubuntu::DownloadManager::SingleDownload"prototype: "QObject"exports: ["SingleDownload 0.1"]exportMetaObjectRevisions: [0]Property { name: "autoStart"; type: "bool" }Property { name: "errorMessage"; type: "string"; isReadonly: true }Property { name: "isCompleted"; type: "bool"; isReadonly: true }Property { name: "downloadInProgress"; type: "bool"; isReadonly: true }Property { name: "allowMobileDownload"; type: "bool" }Property { name: "throttle"; type: "qulonglong" }Property { name: "progress"; type: "int"; isReadonly: true }Property { name: "downloading"; type: "bool"; isReadonly: true }Property { name: "downloadId"; type: "string"; isReadonly: true }Property { name: "headers"; type: "QVariantMap" }Property { name: "metadata"; type: "Ubuntu::DownloadManager::Metadata"; isPointer: true }Signal {name: "canceled"Parameter { name: "success"; type: "bool" }}Signal {name: "finished"Parameter { name: "path"; type: "string" }}Signal {name: "paused"Parameter { name: "success"; type: "bool" }}Signal {name: "processing"Parameter { name: "path"; type: "string" }}Signal {name: "progressReceived"Parameter { name: "received"; type: "qulonglong" }Parameter { name: "total"; type: "qulonglong" }}Signal {name: "resumed"Parameter { name: "success"; type: "bool" }}Signal {name: "started"Parameter { name: "success"; type: "bool" }}Signal {name: "errorFound"Parameter { name: "error"; type: "DownloadError&" }}Signal { name: "errorChanged" }Method {name: "registerError"Parameter { name: "error"; type: "Error"; isPointer: true }}Method {name: "bindDownload"Parameter { name: "download"; type: "Download"; isPointer: true }}Method {name: "unbindDownload"Parameter { name: "download"; type: "Download"; isPointer: true }}Method {name: "onFinished"Parameter { name: "path"; type: "string" }}Method {name: "onProgress"Parameter { name: "received"; type: "qulonglong" }Parameter { name: "total"; type: "qulonglong" }}Method {name: "onPaused"Parameter { name: "wasPaused"; type: "bool" }}Method {name: "onResumed"Parameter { name: "wasResumed"; type: "bool" }}Method {name: "onStarted"Parameter { name: "wasStarted"; type: "bool" }}Method {name: "onCanceled"Parameter { name: "wasCanceled"; type: "bool" }}Method { name: "start" }Method { name: "pause" }Method { name: "resume" }Method { name: "cancel" }Method {name: "download"Parameter { name: "url"; type: "string" }}}Component {name: "Ubuntu::DownloadManager::UbuntuDownloadManager"prototype: "QObject"exports: ["DownloadManager 0.1"]exportMetaObjectRevisions: [0]Property { name: "autoStart"; type: "bool" }Property { name: "cleanDownloads"; type: "bool" }Property { name: "errorMessage"; type: "string"; isReadonly: true }Property { name: "downloads"; type: "QVariantList"; isReadonly: true }Signal { name: "errorChanged" }Method {name: "download"Parameter { name: "url"; type: "string" }}}}在今天的例子里,我们将使用SingleDownload来下载我们所需要的图片。我们可以看到,SingleDownload有“finished”信号,我们可以通过这个信号来得到文件下载完毕的通知,并在“path”中得到我们所下载文件的路径。当然我们也可以使用其它的信号来得到下载的更多的信息。

我们来修改我们的“Main.qml”如下:

人生如果错了方向,停止就是进步”。

如何使用Ubuntu SDK中的Download Manager来下载文件

相关文章:

你感兴趣的文章:

标签云: