0

我正在尝试使用复合卡中的单击键打开谷歌地图,但我不知道在应用程序启动的有效负载 URI 键中包含什么。文档使用了注释掉的示例,但我不知道要为应用程序填写什么(google-maps)。

我收到两个错误都是 Unknown key message/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")
            }
          }
        }
      }
    }
  }
}
4

2 回答 2

0

“未知密钥”错误意味着您尝试定义的密钥不是您当前所在密钥的有效子密钥之一。Bixby 开发人员文档的参考部分为每个密钥提供了有效的子密钥。

两者app-launchmessage都不是 的子键on-click

  • app-launch不能在on-click. 它必须在自己的result-view.

  • message可以在多个键中定义,但不能on-click

on-click需要重定向到一个单独的result-view,其中包含app-launch正确payload-uri定义的密钥。

您需要以下内容来实现您描述的行为:

  • 用于返回 URI 的操作(和支持操作 Javascript)
  • 保存 Action 返回的 URI 的概念
  • result-viewmatch概念相匹配的A

示例操作:

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
  }
}

特别是对于 Google Maps API,Google Maps 文档似乎提供了有关如何为您的特定目的和行为定义正确 URI 的信息。

于 2019-04-16T19:58:09.980 回答
0

请查看 Bixby 团队提供的这个官方图书馆,该图书馆提供谷歌地图的打孔功能。

https://bixbydevelopers.com/dev/docs/dev-guide/developers/library.navigation

于 2019-04-23T18:47:59.400 回答