IntentHandler QML 类型
处理由应用程序接收到的意图请求的处理程序。 更多...
导入声明 | import QtApplicationManager.Application 2.0 |
属性
- intentIds : list<string>
信号
- requestReceived(IntentRequest request)
详细描述
任何在其清单文件中列出意图的应用程序都需要有一个相应的 IntentHandler 实例,实际上能够处理传入的请求。此类提供了灵活性,允许通过单个 IntentHandler 实例处理多个不同的意图 id,或者为每个意图 id(或这些组合中的任意组合)保留专用 IntentHandler 实例。
注意:处理系统 UI 内的意图请求时,必须使用系统 UI 端组件 IntentServerHandler,其工作方式相同,但提供了来自 QML 的所有必要元数据。
这里处理传入的意图请求并发送结果或错误消息的相当标准的方式
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 }) } } }
属性文档
每个处理程序至少需要注册一个唯一意图 id,它将处理。无法注册多个具有相同意图 id 的 IntentHandlers。
注意:在此组件完成后对此属性的任何更改都将没有效果。
信号文档
requestReceived(IntentRequest request) |
此信号将在针对处理程序的 intentIds 属性通过每个传入的意图 request 触发一次。
可以同步或异步处理请求。一旦处理程序生成了结果或检测到错误条件,它应该调用 IntentRequest::sendReply() 或 IntentRequest::sendErrorReply() 分别将回复发送给请求方。即使您的意图没有返回值,您仍然需要发送一个空对象 {}
回复来表明意图请求已成功处理。
仅第一个对这些函数的调用将产生效果。后续调用将被忽略。
如果在 系统的指定超时间隔 内未调用这些函数,系统将向原始发送方发送一个隐式的“由于超时而失败”错误回复。
注意:相应的处理程序是 onRequestReceived
。
版权所有© 2024 The Qt Company Ltd. 本文档中包含的贡献归其各自所有者所有。本文档提供的内容根据 GNU自由文档许可版本1.3 的条款许可,该许可由自由软件基金会发布。Qt及其相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。