如何将数组项作为 bixby 中的循环放入对话驱动程序模板中

How to put array items in the conversation-driver template as a loop in bixby

我试试这个代码↓

结果-view.view.bxb

    conversation-drivers {
    if (size(arrayItem) > 0) {      //arrayItem : item1, item2, item3
      conversation-driver {
        template-macro (arrayItemTempl){
          param (arrayItem){
            expression (arrayItem)
          }  
        }
      }
     }
    }

arrayItemTempl.dialog.bxb

template-macro-def (arrayItemTempl) {
  params {
    param (arrayItem) {
      type (ArrayItem)
      min (Optional) max (Many)
    }
  }
  content {
    template ("#{value(arrayItem)}")
  }
}

结果 enter image description here

对于每个错误,错误列表...如何在对话驱动程序和模板宏定义中循环

我希望每个项目都是独立的。 [item1, item2, item3] ---> [item1] [item2] [item3]

很遗憾,这是不可能的。您必须为每个项目手动定义 conversation-driver

conversation-drivers {
   conversation-driver {
     ...
   }
   conversation-driver {
     ...
   }
   conversation-driver {
     ...
   }
}

请记住,如果对话驱动程序太多,用户将需要滚动才能看到所有对话驱动程序。考虑不要有太多的对话驱动因素。

无法显示 variable-sized 组对话驱动程序,此行为符合 Bixby 的 Design Principles

对话驱动程序旨在向用户展示合理的后续步骤。在范围适当的胶囊中,用户应该很少有超过 2-3 个后续步骤可供选择。根据经验,如果没有充分理由,我会推荐不超过 4 个对话驱动程序。

此外,大量的对话驱动程序可能会导致胶囊批准流程出现问题,该流程会审查所有用于 Marketplace 的胶囊的用户体验。

我建议探索 Design Guides available in the developer documentation. The Designing Conversations and Designing With Bixby Views 指南,这对您的用例特别有用。