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

时间:2019-05-14 22:00:26

标签: bixby

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

我设置了默认输入以从profile胶囊获取电子邮件地址,然后将其作为电子邮件输入的选项:

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

然后我使用input-viewselection-of中显示它们:

这是我的观点:

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组件,但这不起作用。除了选择内容外,还有其他关于如何具有自定义输入选项的想法吗?还是另一种解决选择不满足用户需求的方法?

2 个答案:

答案 0 :(得分:3)

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

在交互的result-view中(假设电子邮件是在交互结束时发送的),我会问用户一个followup问题:“我应该向{发送一个确认电子邮件吗? {1}}在您的个人资料上。”

如果用户回答“是”,则与<email>的{​​{1}}关联的Action将向用户发送电子邮件。

如果用户说“否”,则与goal的{​​{1}}关联的on-confirm应该提示用户输入电子邮件地址。

这种方法利用了Bixby平台的对话功能,并使这种交互对于最终用户而言更加自然。

答案 1 :(得分:2)

渲染form之后,您将无法渲染selection-of

我的IDE显示此错误-是您的吗?

“无法到达的语句”表示该部分代码将永远不会运行。 enter image description here

无论如何,对此进行建模的一种可能方法是提供用户真实电子邮件地址的选择视图,以及最后一个条目,即称为“输入我自己的”的虚拟电子邮件地址。 (这使用selection-of

如果选择了该选项,则可以在JavaScript中抛出error,然后重新计划为目标,例如EnterCustomEmail。 (这使用form)。