我花了很长时间浏览文档,但是在执行操作之前无法获取确认视图。向胶囊添加确认视图的步骤是什么?
我有一个名为Evaluate
的操作和一个地址输入,我会从用户个人资料中自动提取该地址。我想在运行Evaluate
之前确认此地址,以防用户想要使用其他地址
这就是我所做的:
1)将viv.common导入capsule.bxb:
import (viv.common) {
as (common)
version (3.30.0)
}
2)在确认动作中添加确认/通过语句:
confirm {
by (common.Confirmation)
}
3)添加与评估操作匹配的确认视图:
confirmation-view {
match: common.Confirmation {
confirming {Evaluate (action) }
}
mode (PositiveEmphasis)
message ("Is this the correct address?")
render {
layout {
section {
content{
paragraph {
style (Title_XS)
value {
template (
"#{value(action.address)}}?"
)
}
}
}
}
}
}
confirm-options {
label ("Yes")
}
abort-options {
label ("Try another Address")
on-abort {
intent {
goal: InputAddress
}
}
}
}
我希望这样做,但是我想我还缺少其他东西。有什么想法吗?
答案 0 :(得分:5)
我一直在研究这个问题,我猜是它不适用于Calculation
操作(或Constructor
操作),您需要交易操作 ,基于confirmation-view documentation中的以下句子:
必须有相应的交易操作,要求您使用确认键进行确认。
看看样品胶囊capsule-sample-bank。进行传输会提示用户进行确认。他们使用两个确认提示:
CreateTransfer
之前进行确认,然后生成Transfer
模型。这是您要寻找的那个。transaction-support
和match { Transfer }
来完成,以匹配第一个的输出,并在用户确认后在CommitTransfer
上启动新的意图。文件夹结构中的相关文件为:
+-- models/
| +-- actions/
| | +-- CreateTransfer.model.bxb
+-- resources/
| +-- base/
| | +-- dialog/
| | | +-- CreateTransfer_Confirmation.dialog.bxb
| | | +-- Transfer_Result.dialog.bxb
| | +-- transactions/
| | | +-- precommit.transaction.bxb
| | +-- views/
| | | +-- CreateTransfer_Confirmation.view.bxb
也许Bixby开发人员团队的人可以扩展这个答案。我看不出为什么不能在Calculation
动作上使用确认的原因。