Neptune 3 UI - 应用请求

应用请求是在Neptune 3 UI中使用的集体术语,用来描述应用程序之间命令的交换。应用请求目前使用Qt应用程序管理器中的两个功能:OpenDocument接口和Neptune 3 UI应用中的意图

应用请求用于发送请求到应用程序,仅打开或在特定状态下打开。换句话说,这个动作应该可以从系统中的任何地方执行。

简要演示

以下示例演示了“打开音乐应用”和“打开地图应用并导航到特定充电站”的请求。

以下行被添加到申请程序的 info.yaml 文件中,以便 ApplicationManager 能够识别。

音乐应用,info.yaml

mimeTypes: [ 'x-scheme-handler/x-radio' ]

地图应用,info.yaml

mimeTypes: [ 'x-scheme-handler/x-map' ]

最后,在系统中随机位置,从该处发送请求

Button {
    id: openRadioApp
    onClicked: {
        Qt.openUrlExternally("x-radio://");
    }
}

Button {
    id: takeMeHome
    onClicked: {
        Qt.openUrlExternally("x-map://takemehome");
    }
}

此外,对于地图应用程序,以下行应添加到应用的商店中,以便对url进行如下处理,指示应用程序设置选定的地址并准备导航到该地址。

Connections {
    target: ApplicationInterface
    //handle here all specific app behavior
    function onOpenDocument: {
        //process documentUrl "getmeto/Donald Weese Ct, Las Vegas"
    }
}

对于音乐应用程序示例,由于其只涉及打开应用,因此在它的商店中不需要添加任何内容。

详细设计

应用程序可以调用Qt.openUrlExternally()函数,传递要打开的应用程序的目标mime-type作为参数,然后是所需的url,以指示应用打开时应执行的操作。

为了成功执行,应根据需要将相应的mime-type添加到应用程序的info.yaml文件中(例如,mimeTypes: [ 'x-scheme-handler/x-radio' ])。然后,ApplicationManager将参考其内部的程序数据库,寻找与x-scheme-handler/x-mimeType匹配的内容。如果匹配成功,将发出openUrlRequested信号,其接收器(ApplicationRequestHandler)可以调用acknowledgeOpenUrlRequest函数来确认请求或拒绝它(rejectOpenUrlRequest)。如果应用程序启动,将通过信号openDocument(string documentUrl, string mimeType)将其url作为文档传递给应用程序,该信号通过其ApplicationInterface。

当ApplicationX请求打开ApplicationY时的简要图解

当发送返回键按下时的简要图解

Neptune 3 UI 应用程序中的意图

Qt 应用程序管理器 的意图允许应用程序通过发送命令并等待返回值(信息)来与另一个应用程序或与系统 UI 进行通信。

下表描述了应用程序提供的意图集合(请参阅 意图系统 UI 和应用程序示例 文档),以及应用程序对意图的通用描述。例如,在第一行中,列出的应用程序在“应用”列中对 activate-app 意图做出响应,通过打开或升起应用程序窗口。

名称功能应用
activate-app打开或升起应用程序窗口
  • com.luxoft.vehicle
  • com.pelagicore.apps.settings
  • com.pelagicore.calendar
  • com.pelagicore.downloads
  • com.pelagicore.map
  • com.pelagicore.music
  • com.pelagicore.phone
  • com.pelagicore.tuner
  • com.luxoft.alexa
set-next-accent-color切换到下一个主题颜色
  • com.pelagicore.apps.settings
show-destination打开地图以进行文本查询(参数:destination:文本地址查询)
  • com.pelagicore.map
music-command切换音乐曲目(参数:musiccommand:prev/next)
  • com.pelagicore.music
call-support启动对 Neptune 支持服务的调用(更多信息请参阅 开发停车应用程序
  • com.pelagicore.phone
trigger-voiceassistant使 Alexa 应用程序能够监听命令
  • com.luxoft.alexa
vehicle-control操作车辆的门、后备箱和天窗。此意图需要 3 个参数
  • action: open/close
  • side: left/right
  • part: trunk/sunroof/door
  • com.luxoft.vehicle

Neptune 3 UI 中的当前用例

媒体应用程序

所有媒体应用程序(收音机、网络收音机、音乐)都通过请求相互连接。要尝试,请导航到音乐、收音机或网络收音机应用程序,并在左侧工具栏菜单中按“源”。将打开包含所有可用音乐源的下拉菜单。点击任何这些源将直接进入相应的媒体应用程序。

车辆设置

能量面板中有一个包含“充电站”建议的列表。若按其中一个,地图应用程序将打开并加载所选充电站的地址。

©2019 Luxoft Sweden AB。本文档中包含的贡献是各自所有者的版权。
提供的文档根据自由软件基金会发布的 GNU 自由文档许可协议第 1.3 版 的条款许可。
Qt 和相应的徽标是芬兰的 Qt 公司和/或其他国家和地区的商标。所有其他商标均属于其各自所有者。