Signature

Signature — область, где пользователь расписывается пальцем, стилусом или мышью. Рисунок можно стереть, загрузить картинкой и сохранить в базе ссылку на загруженный файл.

Подпись рисуют, загружают картинкой и сохраняют в базе ссылку на неё

осторожно

Подпись — чувствительные данные пользователя. Сам по себе рисунок не подтверждает ни личность, ни юридически значимое согласие. Стройте сценарий согласия под требования, которые действуют для вашего приложения, и прямо объясняйте, как подпись будет использоваться, храниться и удаляться.

Работа с виджетом

1. Добавление

  1. Добавьте Signature из раздела Form Elements в Widget Palette или через Widget Tree.
  2. Выделите виджет и откройте Properties Panel.
  3. В свойствах Signature задайте Width и Height.

Оставьте достаточно места, чтобы было удобно расписаться даже на самом маленьком поддерживаемом экране.

Виджет Signature на странице соглашения, настройки размера и вида выделены синим

2. Загрузка подписи

Действие Upload Signature загружает рисунок из выбранного виджета Signature в Firebase Storage. После успешной загрузки ссылку на картинку можно использовать в других виджетах и действиях.

инфо

Пока Upload Signature загружает файлы только в Firebase Storage.

Перед загрузкой убедитесь, что подпись нарисована. На время загрузки заблокируйте повторную отправку, покажите прогресс и выведите понятное сообщение, если что-то пошло не так.

Как загрузить подпись:

  1. Выделите элемент, который отправляет подпись, например Button.
  2. Откройте вкладку Actions и нажмите + Add Action.
  3. Выберите Upload Signature.
  4. В Signature to Upload укажите виджет Signature с рисунком.
  5. По желанию включите Crop Exported Image — тогда загрузится только область с рисунком, а не весь холст виджета.

Если ширина или высота холста не задана или бесконечна, картинка по этой оси обрезается до минимального размера. Подпись выравнивается по центру.

Действие Upload Signature: выбор виджета и опция Crop Exported Image выделены синим

3. Ссылка на подпись

После успешного Upload Signature ссылка на картинку доступна в Widget State > Uploaded Signature URL. Её можно поставить источником для виджета Image или передать в другое действие. Чтобы подпись не пропала после закрытия страницы, сохраните ссылку в поле базы данных.

Действие Update Page State: поле Uploaded Signature URL и пункт Widget State выделены синим

Очистка

Действие Clear Signatures стирает текущий рисунок в одном или нескольких виджетах Signature.

внимание

Уже загруженную картинку это действие не удаляет и ссылку, сохранённую в базе, не стирает.

Как стереть рисунок:

  1. Выделите элемент, который будет очищать поле, например IconButton.
  2. Откройте вкладку Actions и нажмите + Add Action.
  3. Выберите Clear Signatures.
  4. В Signature Fields отметьте виджеты, которые нужно очистить.

Если подпись уже отправлена, отдельно удалите сохранённый файл и сотрите ссылку в базе. Чем очистка локального значения отличается от удаления загруженного файла, рассказано в разделе Очистка и удаление медиа.

Настройка

Выделите Signature и задайте в свойствах:

  • Width и Height — размер области для подписи;
  • Pen Color — цвет линии;
  • Pen Stroke Width — толщину линии;
  • Background Color — фон виджета;
  • Export Background Color — фон сохраняемого PNG.
инфо

Цвета виджета применяются при его инициализации и потом не меняются. Берите цвет пера, который хорошо контрастирует с фоном, и не делайте линию настолько тонкой, что её трудно разглядеть.

Рекомендации

  • Объясните, зачем нужна подпись, до того как просить её нарисовать.
  • Настройте правила базы данных и хранилища так, чтобы доступ был только у тех, кому положено.
  • Определите, сколько хранятся подписи, и предусмотрите удаление, если оно требуется.
  • Если это уместно, сохраняйте рядом с подписью сведения о согласии: версию соглашения, пользователя, время отправки.
  • Дайте понятную кнопку, чтобы стереть и перерисовать подпись до отправки.
  • Не передавайте инструкции и ошибки одним только цветом.
  • Предусмотрите альтернативу для тех, кто не может нарисовать подпись мышью или касанием.
перевод официальной документации FlutterFlow

обновлено · перевод от

⌕ ESC