当前,我正在尝试在交互后设置一些继续操作。这样的延续将向用户发送一封电子邮件,其中包含上次操作的结果。我设置了将获得电子邮件地址并发送电子邮件的操作。为了填充此输入,我想提供包含在profile
/ self
胶囊中的电子邮件地址作为选择选项,或者允许用户输入自定义电子邮件。
我设置了默认输入以从profile
胶囊获取电子邮件地址,然后将其作为电子邮件输入的选项:
input (emailAddress) {
type (contact.EmailAddress)
instantiation-behavior (ShowDefaultValueDecision)
min (Required) max (One)
default-init {
intent {
goal: ReturnSelfEmail
}
}
}
然后我使用input-view
在selection-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
组件,但这不起作用。除了选择内容外,还有其他关于如何具有自定义输入选项的想法吗?还是另一种解决选择不满足用户需求的方法?
答案 0 :(得分:3)
这是解决问题的另一种方法。
在交互的result-view
中(假设电子邮件是在交互结束时发送的),我会问用户一个followup
问题:“我应该向{发送一个确认电子邮件吗? {1}}在您的个人资料上。”
如果用户回答“是”,则与<email>
的{{1}}关联的Action
将向用户发送电子邮件。
如果用户说“否”,则与goal
的{{1}}关联的on-confirm
应该提示用户输入电子邮件地址。
这种方法利用了Bixby平台的对话功能,并使这种交互对于最终用户而言更加自然。
答案 1 :(得分:2)
渲染form
之后,您将无法渲染selection-of
。
我的IDE显示此错误-是您的吗?
无论如何,对此进行建模的一种可能方法是提供用户真实电子邮件地址的选择视图,以及最后一个条目,即称为“输入我自己的”的虚拟电子邮件地址。 (这使用selection-of
)
如果选择了该选项,则可以在JavaScript中抛出error,然后重新计划为目标,例如EnterCustomEmail
。 (这使用form
)。