ApplicationIPCManager QML 类型
系统-UI与应用程序通信接口的中央注册表。更多...
导入说明 | import QtApplicationManager.SystemUI 2.0 |
方法
- bool registerInterface(ApplicationIPCInterface interface, string name, var filter)
详细描述
此单例类型是应用程序管理器中的应用程序到系统-UI IPC 接口的中央管理器。
它只向 QML 系统UI 导出一个单一函数: registerInterface()。
有关如何从客户端(应用程序)侧访问已注册的 IPC 接口的信息,请参阅ApplicationInterfaceExtension。
方法说明
bool registerInterface(ApplicationIPCInterface interface, string name, var filter) |
将 IPC interface 对象注册到扩展应用程序和应用程序管理器本身之间的通信 API。该 interface 对象是一个 ApplicationIPCInterface 项,在整个系统 UI 生命周期中都需要保持有效。接口的name 必须遵循 D-Bus 标准,因此它必须至少包含一个点('.') 字符(例如,io.qt.test
)。作为标准、类型化的 D-Bus 接口,接口可供所有符合以下filter标准的应用程序使用(如下所述)的专用对等点 D-Bus 使用。
由于没有办法向 JavaScript 函数的参数添加类型信息,因此接口将扫描用于仅用于推导类型信息的特殊注释属性,但这些属性不导出到应用程序中。
只读属性 var _decltype_<function-name>: { "<return type>": [ "<param 1 type>", "<param 2 type>", ...] }
支持以下类型
类型 | DBus 类型 | 注意 |
---|---|---|
void | - | 仅作为返回类型有效。 |
int | INT32 | |
string , url | STRING | 将 URL 映射为纯文本字符串。 |
bool | BOOLEAN | |
real , double | DOUBLE | |
var , variant | VARIANT | 也可以用于列表和映射。 |
以下是一个简单示例,说明如何将此类注释添加到函数定义中
readonly property var _decltype_testFunction: { "var": [ "int", "string" ] } function testFunction(ivar, strvar) { return { "strvar": strvar, "intvar": intvar } }
您可以通过 filter 参数限制接口在应用程序中的可用性:传递空 JavaScript 对象({}
)或使用以下可用字段名的任何组合
键 | 值 | 描述 |
---|---|---|
applicationIds | list<string> | 可以允许使用此接口的应用程序 ID 列表。 |
categories | list<string> | 类别名称列表(参见 info.yaml)。任何属于这些类别的应用程序都可以使用本接口。 |
capabilities | list<string> | 应用程序功能列表(参见 info.yaml)。任何具有这些功能之一的应用程序都可以使用本接口。 |
所有过滤器字段必须匹配,但只考虑实际设置的字段。
import QtQuick 2.0 import QtApplicationManager.SystemUI 2.0 ApplicationIPCInterface { id: extension property bool pbool: true property double pdouble: 3.14 signal testSignal(string str, variant list) readonly property var _decltype_testFunction: { "void": [ "int", "string" ] } function testFunction(foo, bar) { console.log("testFunction was called: " + foo + " " + bar) } Component.onCompleted: { ApplicationIPCManager.registerInterface(extension, "io.qt.test.interface", { "capabilities": [ "media", "camera" ] }) } }
如果注册成功,则返回 true
,否则返回 false
。
©2019 瑞典Luxoft AB。本文件中包含的文档贡献归各自所有者所有。本文件提供的文档是根据自由软件基金会发布的GNU自由文档许可1.3版许可条款提供的。Qt和相应的标志是芬兰Qt公司以及其他国家的商标。所有其他商标均归各自所有者所有。