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'

app.apiCall('onImageUpload', async (ctx, req) => {
  return ctx.router.navigate('imageUpload?hash=' + req.body.file.hash)
})

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

  return (
    <screen>
      <button title="Upload an image" onClick={onButtonClick} />
      {req.query?.hash && <img src={getThumbnailUrl(req.query.hash)} />}
    </screen>
  )
})

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании