如何显示Bixby确认视图?

时间:2019-05-21 21:11:43

标签: bixby

我花了很长时间浏览文档,但是在执行操作之前无法获取确认视图。向胶囊添加确认视图的步骤是什么?

我有一个名为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
            }
        }
    }
}

我希望这样做,但是我想我还缺少其他东西。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我一直在研究这个问题,我猜是它不适用于Calculation操作(或Constructor操作),您需要交易操作 ,基于confirmation-view documentation中的以下句子:

  

必须有相应的交易操作,要求您使用确认键进行确认。

看看样品胶囊capsule-sample-bank。进行传输会提示用户进行确认。他们使用两个确认提示:

  • 第一个完成是在提示用户在评估CreateTransfer之前进行确认,然后生成Transfer模型。这是您要寻找的那个。
  • 第二个使用transaction-supportmatch { 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动作上使用确认的原因。