如何使用输入组有条件地指定输入?

时间:2019-06-12 22:18:14

标签: bixby

我正在尝试使用用户的默认地理位置信息 ,除非她指定了其他位置。因此,“正在发生的事情”应该在她的个人资料中传递地理位置信息。 “塔尔萨发生了什么”传递有关塔尔萨的地理位置信息。

我正在使用输入组来执行此操作:

 input-group (where) {
  requires (OneOf)
  collect {
    input (location) {
         min (Optional) max (One)
         type (viv.geo.NamedPoint)
          default-select {
             with-rule {
               select-first
            }
        }
      }
     input (myLocation) {
       min (Optional) max(One)
       type (viv.geo.GeoPoint)

       default-init {
         if ($user.currentLocation.$exists) {
           intent {
             goal: geo.GeoPoint
             value-set: geo.CurrentLocation { $expr ($user.currentLocation) }
           }
         } 
       }
     }
    }
  }

这有效。

但是我想知道是否有更好的方法可以做到这一点?有什么方法可以使用更标准的条件逻辑(例如操作中的if / then或除非声明)?

1 个答案:

答案 0 :(得分:3)

您可能想使用default-init尝试此操作,如果没有提供,则提供默认输入:

input (myLocation) {
       min (Required) max(One)
       type (viv.geo.GeoPoint)

       default-init {
         if ($user.currentLocation.$exists) {
           intent {
             goal: geo.GeoPoint
             value-set: geo.CurrentLocation { $expr ($user.currentLocation) }
           }
         } 
       }