如何在 bixby 上显示带有预填充选择和自定义输入字段的输入视图?

How can I display an input view on bixby with pre-populated selections AND a custom input field?

目前我正在尝试在交互后设置一些延续操作。一个这样的延续将向用户发送一封电子邮件,其中包含上次操作的结果。我设置了将获取电子邮件地址并发送电子邮件的操作。为了填写这个输入,我想提供 profile/self 胶囊中包含的电子邮件地址作为选择选项,或者允许用户输入自定义电子邮件。

我设置了一个默认输入以从 profile 胶囊中获取电子邮件地址,然后将这些作为电子邮件输入的选项提供:

input (emailAddress) {
  type (contact.EmailAddress)
  instantiation-behavior (ShowDefaultValueDecision)
  min (Required) max (One)
  default-init {
    intent {
      goal: ReturnSelfEmail
    }
  }
}

然后我使用 selection-of:

input-view 中显示它们

这是我的观点:

input-view {
  match: contact.EmailAddress(this) {
    to-input: EmailResults
  }
  message ("What is your Email address?")
  render{
    selection-of (this) {
      where-each (email) {
        paragraph {
          value {
            template ("#{value(email)}")
          }
          style (Detail_M)
        }
      }
    }
    form {
      elements {
        text-input {
          id (emailAddress)
          label("Email Address")
          required (true)
          type (contact.EmailAddress)
        }
      }
      on-submit {
        goal: contact.EmailAddress
        value: viv.core.FormElement(emailAddress)
      }
    }
  }
}

在那个视图中,我也尝试添加一个 form 组件,但这不起作用。除了选择之外,关于如何拥有自定义输入选项的任何想法?还是另一种方法来处理选择不满足用户的情况?

渲染 selection-of 后无法渲染 form

我的 IDE 显示此错误 - 你的呢?

"Unreachable statement"表示那部分代码永远不会运行。

无论如何,一种可能的建模方法是提供用户真实电子邮件地址的选择视图,最后一个条目是一个名为 "input my own." 的虚拟电子邮件地址(这使用 selection-of )

如果做出该选择,您可以在 JavaScript 中输入 error,然后重新计划目标,例如 EnterCustomEmail。 (这使用 form)。

这是解决问题的另一种方法。

在交互的result-view中(假设在交互结束时发送邮件),我会问用户一个followup问题"Should I send a confirmation email to the <email> on your profile.?"

如果用户响应 "Yes",则与 on-confirmgoal 关联的 Action 将向用户发送电子邮件。

如果用户说 "No",与 on-denygoal 关联的 Action 应该提示用户输入电子邮件地址。

这种方法使用了 Bixby 平台的对话功能,使这种互动成为 end-user 的更自然的体验。