Биксби: Как мне установить начальное значение self BirthdayInfo в окне выбора даты в представлении ввода? - PullRequest
0 голосов
/ 26 февраля 2019

Какие дополнительные шаги мне нужно предпринять, чтобы установить начальное значение средства выбора даты на день рождения пользователя, используя библиотеку viv.self ?Это лучшее место, чтобы справиться с этим?В настоящее время я устанавливаю значение по умолчанию 30 лет назад.

render {
date-picker {
  // Default Date -30 Years (viv.self Birthday Option)
  initial-value ("subtractDuration(now().date, 'P30Y')")
  restrictions {
    // allow selection 80 Years Ago
    min-allowed ("subtractDuration(now().date, 'P80Y')")
    // to allow selection 18 Years Ago
    max-allowed ("subtractDuration(now().date, 'P18Y')")
  }
}

}

1 Ответ

0 голосов
/ 02 марта 2019
  1. Вы можете использовать match-pattern для достижения этой цели.
  2. Birthday - это часть библиотеки viv.contact, но она недоступна в библиотеке viv.self .

В вашем действии создайте дополнительный атрибут типа time.Date (или концепцию с role-of из time.Date) для хранения Дня рождения.

Вот как кодбудет выглядеть так.

action (GetBirthDate) {
  type(Constructor)
  description (Collect the date selected by a user)

  collect {

    input (usersBirthday) {
      type (BirthDate)
      min (Required) max (One)
      default-init {
        intent {
        // TO-DO Get the birthday with an intent
        }
      }
    }

    // This input will hold the value entered by the user
    computed-input (birthDate) {
      type (BirthDate)
      min (Required) max (One)
      compute {
        intent {
          goal: BirthDate
        }
      }
    }
  } output (BirthDate)
}

Концепция BirthDate, использованная в приведенном выше коде, выглядит следующим образом

structure (BirthDate) {
  description (__DESCRIPTION__)
  role-of (time.Date)
}

Ваше представление ввода будет выглядеть следующим образом.Это определяет match-pattern, который вызывается всякий раз, когда нам нужно представление ввода для BirthDate, и что BirthDate функционирует в качестве ввода назад к действию.

Шаблоны проверки извлечения здесь: https://bixbydevelopers.com/dev/docs/dev-guide/developers/customizing-plan.match-patterns

input-view {
  match: BirthDate (this) {
    to-input {
      GetBirthDate (action)
    }
  }


  render {
    date-picker {
      initial-value (action.usersBirthday)
      restrictions {
        // allow selection 80 Years Ago
        min-allowed ("subtractDuration(now().date, 'P80Y')")
        // to allow selection 18 Years Ago
        max-allowed ("subtractDuration(now().date, 'P18Y')")
      }
    }
  }
}
...