IntentServer QML 类型

代表 Intents 子系统的 System UI 单例。 更多...

导入声明导入 QtApplicationManager.SystemUI 2.0

信号

方法

详细描述

此单例有两个用途:一方面,它通过其项目模型 API 给 System UI 提供对所有可用意图数据库的访问权限,另外它还公开了处理歧义意图请求的 API。如果请求方仅在调用 IntentClient::sendIntentRequest() 时指定了 intentId,而没有指定目标 applicationId,则意图请求可能是歧义的。在这些情况下,系统 UI 应负责通过反应在 disambiguationRequest() 信号上解歧这些请求。

此类型继承自 QAbstractListModel,因此它可以直接用作 app-grid 视图中的模型。

在此模型中可用以下角色

角色名称类型描述
intentIdstring意图的 ID。
packageIdstring包含此意图处理应用包的唯一 ID。
applicationIdstring负责处理此意图的应用程序的 ID。
namestring意图的名称。如果可能,已翻译为当前区域设置。如果没有为意图定义名称,则返回对应包的名称。
iconstring意图图标的 URL。如果没有为意图定义图标,则返回对应包的图标。
categorieslist<string>此意图通过元数据文件注册的类别。
intentIntent用于快速访问模型代理外的属性的底层 Intent 对象。

信号文档

disambiguationRequest(uuid requestId, list<Intent> potentialIntents, var parameters)

IntentServer 收到可能被多个应用程序处理的目的请求信号时,会发出此信号。

注意: 只有当连接了接收器时才能发出此信号。如果没有连接信号,将随机选择列表中可能匹配的应用程序来处理此请求。

此信号的接收器会接收到请求的 requestId 及其 parameters。然后,它可以调用 acknowledgeDisambiguationRequest() 从提供的 potentialIntents 中选择一个,或者调用 rejectDisambiguationRequest() 完全拒绝此意图请求。在这两种情况下,唯一需要发送的 requestId 用于识别意图请求。

不调用这两个函数之一会导致内存泄漏。

注意: 对应的处理程序是 onDisambiguationRequest

另请参阅:IntentClient::sendIntentRequest


intentAboutToBeRemoved(Intent intent)

当即将从 intentList 中删除现有 intent 时发出(如应用卸载时)。

注意: 对应的处理程序是 onIntentAboutToBeRemoved


intentAdded(Intent intent)

当 new intent 被添加到 intentList 时发出(如应用安装时)。

注意: 对应的处理程序是 onIntentAdded


方法文档

acknowledgeDisambiguationRequest(uuid requestId, Intent selectedIntent)

告诉 IntentServer 继续处理由 requestId 标识的发送者的意图请求。所选择的 selectedIntent 必须是发送给 disambiguationRequest 信号接收者的 potentialIntents 之一。

另请参阅:IntentClient::sendIntentRequest


IntentObject applicationIntent(string intentId, string applicationId, var parameters)

返回与给定的 intentIdapplicationIdparameters 对应的 intentnull(如果 id 不存在)。

此方法公开了用于内部匹配 incoming Intent 请求的功能,这些请求针对由 intentId 标识的 intent 并针对由 applicationId 标识的应用。尽管您可以使用 JavaScript 在 intentList 上迭代,但此函数的好处是还会将提供的 parameters 与任何给定的 parameter matches 进行检查。

注意: 返回的 Intent 对象的所有权属于应用程序管理器。如果您想存储此指针,可以使用 QAbstractListModel 信号或 intentAboutToBeRemoved 信号,如果在 C++ 端即将删除对象,您可以接收通知。


对象 get(int index)

以 JavaScript 对象的形式检索位于 index 的模型数据。有关预期对象字段的名称,请参阅 角色名称

如果指定的 index 无效,则返回空对象。

注意:如果您只想从 QML 访问单个属性,这非常低效;请使用 intent() 直接访问 Intent 对象的属性。


int indexOfIntent(IntentObject intent)

intent 映射到该模型内的位置。如果指定的意图无效,则返回 -1

另请参阅intent()


int indexOfIntent(string intentId, string applicationId, var parameters)

将指定的 intentIdapplicationIdparameters 对应的意图映射到该模型内的位置。如果指定的意图无效,则返回 -1

另请参阅intent()


IntentObject intent(int index)

返回模型中对应于给定 indexintent,如果索引无效,则返回 null

注意: 返回的 Intent 对象的所有权属于应用程序管理器。如果您想存储此指针,可以使用 QAbstractListModel 信号或 intentAboutToBeRemoved 信号,如果在 C++ 端即将删除对象,您可以接收通知。


IntentObject packageIntent(string intentId, string packageId, string applicationId, var parameters)

返回对应于给定 intentIdpackageIdapplicationIdparametersintent,如果 ID 不存在,则返回 null

另请参阅applicationIntent


IntentObject packageIntent(string intentId, string packageId, var parameters)

返回对应于给定 intentIdpackageIdparametersintent,如果 ID 不存在,则返回 null

另请参阅applicationIntent


rejectDisambiguationRequest(uuid requestId)

告知 IntentServer 忽略由 requestId 标识的发送者的意图请求。在这种情况下,原始发送者将收到错误回应。

另请参阅:IntentClient::sendIntentRequest


©2019 Luxoft瑞典AB。本文档中的内容贡献归各自所有者版权所有。本提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3进行许可。Qt及其相应标志是芬兰Qt公司及其在全世界或其他国家的商标。所有其他商标均为各自所有者所有。