虽然我们的developer站点有丰富的API介绍,可是,有些API的介绍可能并不全,有些API也在不断地演进中。

为了得到更具体的API,我们能够通过例如以下的命令来得到更加具体的信息。比方我们对“​​SingleDownload​​”API来得到更加多的信息。


$qmlplugindump Ubuntu.DownloadManager 0.1


怎样得到QML package的具体API接口_sed


显示的结果例如以下:


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::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" }

        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" }

        }

    }

}


我们通过使用“finished”信号能够得到下载完毕的事件而进行分别的处理!


另外一个样例(Push notification)


liuxg@liuxg:~$ qmlplugindump Ubuntu.PushNotifications 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.PushNotifications 0.1'

Module {
Component {
name: "PushClient"
prototype: "QObject"
exports: ["PushClient 0.1"]
exportMetaObjectRevisions: [0]
Property { name: "appId"; type: "string" }
Property { name: "token"; type: "string"; isReadonly: true }
Property { name: "notifications"; type: "QStringList"; isReadonly: true }
Property { name: "status"; type: "string"; isReadonly: true }
Property { name: "persistent"; type: "QStringList"; isReadonly: true }
Property { name: "count"; type: "int" }
Signal {
name: "countChanged"
Parameter { type: "int" }
}
Signal {
name: "notificationsChanged"
Parameter { type: "QStringList" }
}
Signal {
name: "persistentChanged"
Parameter { type: "QStringList" }
}
Signal {
name: "appIdChanged"
Parameter { type: "string" }
}
Signal {
name: "error"
Parameter { type: "string" }
}
Signal {
name: "tokenChanged"
Parameter { type: "string" }
}
Signal {
name: "statusChanged"
Parameter { type: "string" }
}
Method { name: "getNotifications" }
Method {
name: "notified"
Parameter { name: "appId"; type: "string" }
}
Method { name: "emitError" }
Method {
name: "clearPersistent"
Parameter { name: "tags"; type: "QStringList" }
}
}
}