#bixby #bixbystudio
#биксби #bixbystudio
Вопрос:
Я пытаюсь открыть карты Google с помощью клавиши on-click с составной карты, но я не знаю, что включить в ключ полезной нагрузки-URI для запуска приложения. В документации используется пример, который закомментирован, но я не знаю, что заполнить для приложения (google-maps).
Я получаю две ошибки, обе из которых являются неизвестным ключом message/app-launch
.
Это код, который мы пытаемся использовать, чтобы при нажатии на составную карту открывались карты Google с помощью app-launch.
// PersonSelectionView.view.bxb
input-view {
match: Spot (this)
// optional selection dialog to overwrite any other default dialog
message (Pick a spot)
render {
// used to iterate over the list of candidates
selection-of (this) {
navigation-mode {
read-none {
list-summary ("There are #{size(this)} #{value(categories)} spots near you")
item-selection-question (Which one would you like?)
}
}
where-each (one) {
// you can use conditional logic to control how candidates are displayed,
// using either a standard layout with a match pattern, or a layout macro
compound-card {
content {
map-card {
title-area {
slot1 {
text {
value("#{value (one.spotName)}")
}
}
slot3 {
single-line {
text {
value("#{value (one.distance)} Miles away")
}
}
}
}
aspect-ratio (1:1)
markers {
marker {
geo ("Location.point")
icon {
template (/images/icons/red-marker.png)
}
width (15)
height (20)
anchor-x (5)
anchor-y (15)
rotation (0)
}
}
}
paragraph {
value {
template ("#{raw(description)}")
}
style (Detail_L)
}
}
on-click {
message ("TESTING THIS MESSAGE")
app-launch {
//payload-uri ("bixby://com.android.systemui/DummySystem/punchOut")
}
}
}
}
}
}
}
Ответ №1:
Ошибка «Неизвестный ключ» означает, что ключ, который вы пытаетесь определить, не является одним из допустимых дочерних ключей ключа, в котором вы находитесь в данный момент. Справочный раздел документации разработчика Bixby предоставляет каждому ключу его действительные дочерние ключи.
Оба app-launch
и message
не являются дочерними ключами on-click
.
app-launch
невозможно определить вon-click
. Он должен быть определен самостоятельноresult-view
.message
может быть определено несколькими ключами, но неon-click
Вам on-click
нужно будет перенаправить на отдельный result-view
, который будет содержать app-launch
ключ с правильным payload-uri
определением.
Для реализации описанного вами поведения вам потребуется следующее:
- Действие (и резервное действие Javascript) для возврата URI
- Концепция хранения URI, возвращаемого действием
- A
result-view
с amatch
, который соответствует концепции
Пример действия:
action (LaunchDefinedUri) {
description (Launches the defined uri)
type (Commit)
collect {
input (launchUri) {
type (LaunchUri)
min (Required) max (One)
}
}
output (LaunchUri)
}
Пример действия Javascript:
module.exports = {
function: LaunchDefinedUri
}
function LaunchDefinedUri(launchUri) {
return launchUri
}
Пример концепции:
text (LaunchUri) {
description (Uri to be launched)
}
Пример просмотра результатов:
result-view {
match: LaunchUri(this)
app-launch {
payload-uri("#{value(this)}")
}
render {
nothing
}
}
Что касается, в частности, API Карт Google, документация Google Maps, похоже, содержит информацию о том, как определить правильные URI для вашей конкретной цели и поведения.
Ответ №2:
Пожалуйста, ознакомьтесь с этой официальной библиотекой, предоставленной командой Bixby, которая предоставляет punch-out для Карт Google.
https://bixbydevelopers.com/dev/docs/dev-guide/developers/library.navigation