IntentHandler QML Type

A handler for intent requests received by applications. More...

Import Statement: import QtApplicationManager.Application 2.0

Properties

Signals

Detailed Description

Any application that has intents listed in its manifest file needs to have a corresponding IntentHandler instance that is actually able to handle incoming requests. This class gives you the flexibility to handle multiple, different intent ids via a single IntentHandler instance or have a dedicated IntentHandler instance for every intent id (or any combination of those).

Here is a fairly standard way to handle an incoming intent request and send out a result or error message:

Image {
    id: viewer
}

IntentHandler {
    intentIds: [ "show-image" ]
    onRequestReceived: {
        var url = request.parameters["url"]
        if (!url.startsWith("file://")) {
            request.sendErrorReply("Only file:// urls are supported")
        } else {
            viewer.source = url
            request.sendReply({ "status": source.status })
        }
    }
}

Property Documentation

intentIds : list<string>

Every handler needs to register at least one unique intent id that it will handle. Having multiple IntentHandlers that are registering the same intent id is not possible.

Note: Any changes to this property after component completion will have no effect. This restriction will likely be removed in a future update.


Signal Documentation

requestReceived(request)

This signal will be emitted once for every incoming intent request that this handler was registered for via its intentIds property. Handling the request can be done synchronously or asynchronously. As soon as your handler has either produced a result or detected an error condition, it should call either IntentClientRequest::sendReply() or IntentClientRequest::sendErrorReply respectively to send a reply back to the requesting party. Only the first call to one of these functions will have any effect. Any further invocations will be ignored.


© 2019 Luxoft Sweden AB. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.