Как мне заставить bixby использовать app-launch для открытия карт Google?

#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 с a match , который соответствует концепции

Пример действия:

 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