ЧатиумРазработчикамСтоимость
Войти

attachMedia

Метод позволяющий загрузить файл в приложение: видео, изображение, аудио и любой другой файл.

import { attachMedia } from "@app/ui"
attachMedia({ submitUrl, title, mediaType })

Аргументы

params*: { title, mediaType, submitUrl }

Объект с параметрами загрузки.

  1. submitUrl*: string

    • Адрес API вызова в который передать информацию о загруженном файле. Информация о файле будет доступна обработчику в  req.body.file , а именно:
    1. req.body.file.hash: string

      Идентификатор файла в файловом хранилище приложения.

    2. req.body.file.name: string

      Исходное имя файла до загрузки в приложение.

  2. title: string

    Заголовок диалога выбора файла. Через него можно подсказать пользователю какого рода файл он выбирает.

  3. mediaType: photo | video | undefined

    • По-умолчанию: undefined

      Позволяет ограничить тип файлов допускаемых к загрузке.

      photo — ограничивает тип файлов до изображениий. На мобильных устройствах предлагает выбрать изображение из галлереи.

      video — ограничивает тип файлов до видео. На мобильных устройствах предлагает выбрать видео из галлереи.

      undefined — не ограничивает тип файла. На мобильных устройствах с данной опцией могут быть недоступны изображения и видео расположенные в галлерее.

Примеры


По нажатию кнопки предлагает загрузить изображение. После загрузки изображение отображается на экране.

import { attachMedia } from '@app/ui'
import { getThumbnailUrl } from '@app/storage'

const onImageUploadApicall = app.apiCall('onImageUpload', async (ctx, req) => {
  return indexScreen.query({ hash: req.body.file.hash }).navigate()
})

const indexScreen = app.screen('/', async (ctx, req) => {
  const onButtonClick = attachMedia({
    title: "Choose an image",
    mediaType: "photo",
    submitUrl: onImageUploadApicall.url()
  })

  return (
    <screen>
      <button title="Upload an image" onClick={onButtonClick} />

      {req.query?.hash && <img src={getThumbnailUrl(req.query.hash)} />}
    </screen>
  )
})