Документация
ОС Аврора 5.2.1

QML-тип IntentHandler

Обрабатывает вызов интента. Подробнее…

Строка импорта: #include <intent_handler.h>

Сигналы

void invoked (const QJsonObject &data, QObject *response) Испускается в момент вызова интента.

Свойства

QString intentName Имя интента.
QStringList readFilePaths Файлы, отправленные в режиме "только чтение".
QStringList writeFilePaths Файлы, отправленные в режиме "чтение-запись".

Подробное описание

Обрабатывает вызов интента.

Элемент IntentHandler можно использовать в QML-коде для обработки входящих вызовов интентов. В самом простом виде его использование выглядит так:

... Код QML ...
 
IntentHandler {
    intentName: "X-ReverseText"
 
    onInvoked: {
        // Сигнал invoked() содержит параметр "data", который представляет собой
        // данные, переданные инициатором вызова, а также объект "response", чей метод
        // send() должен быть вызван для отправки ответа обратно клиенту.
        var message = data['message']
 
        // Инвертировать строку
        var reversed = message.split("").reverse().join("")
 
        // Отвечает инициатору вызова
        response.send({'reversedMessage': reversed})
    }
}

Передача файлов в ответах

Чтобы отправить файл обратно вызывающему приложению, необходимо указать его путь в одном из полей ответного сообщения и задать JSON‑путь к этому полю в свойстве readFilePaths (для файлов, возвращаемых в режиме "только чтение") или в свойстве writeFilePaths (для режима "чтение‑запись"). Например, если приложение определяет интент "X-FilePicker", чтобы позволить пользователю выбрать некоторые файлы и вернуть их вызывающему приложению, оно может реализовать его следующим образом:

IntentHandler {
    intentName: "X-FilePicker"
    readFilePaths: "chosenFiles[*]"
 
    onInvoked: {
        // Предположим, что данный код показывает пользователю диалог и возвращает выбранные
        // файлы
        var files = UI.ChoseFiles(...)
 
        // Отвечает инициатору вызова
        response.send({'chosenFiles': files})
    }
}

См. также invoked(), IntentsInvoker

Описание функций-членов

invoked

void IntentHandler::invoked (const QJsonObject & data, QObject * response ) signal

Испускается в момент вызова интента.

Сигнал испускается при вызове нашего интента другим приложением. Входные данные закодированы как JSON-объект в параметре data, в то время как параметр response представляет собой объект, имеющий метод send(), который должен быть вызван после завершения обработки интента. Хотя обработку интента рекомендуется выполнять как можно быстрее, бывают случаи, когда интент требует взаимодействия с пользователем или другими внешними устройствами. В таких ситуациях можно сохранить объект response в другой переменной с более длительным временем жизни и вызвать его метод send() позже, уже после того, как этот обработчик сигнала вернул управление.

Параметры

data JSON-объект, содержащий входные данные
response Объект Qt, предназначенный для отправки ответа. Он имеет метод send(), который принимает JSON-объект, отправляемый в качестве ответа вызывающему приложению

Примечание

Метод send() у объекта ответа должен вызываться всегда, даже если у интента нет выходных параметров. В такой ситуации достаточно вызвать response.send({}), который доставит пустой ответ вызывающей стороне.

Описание свойств

intentName

QString IntentHandler::intentName readwrite

Имя интента.

Имя интента, который обрабатывается данным элементом. Следует учитывать, что если используемый интент не входит в число стандартных, его имя обязано начинаться с символов "X-".

readFilePaths

QStringList IntentHandler::readFilePaths read

Файлы, отправленные в режиме "только чтение".

Это свойство должно быть установлено, если ответ интента содержит файл, который необходимо передать в режиме "только чтение" приложению, вызвавшему этот интент. См. раздел Передача файлов в ответах для пояснений.

writeFilePaths

QStringList IntentHandler::writeFilePaths read

Файлы, отправленные в режиме "чтение-запись".

Это свойство должно быть установлено, если ответ интента содержит файл, который необходимо передать в режиме "чтение-запись" приложению, вызвавшему этот интент. См. раздел Передача файлов в ответах для пояснений.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.