Метод позволяющий загрузить файл в приложение: видео, изображение, аудио и любой другой файл.
import { attachMedia } from "@app/ui"
attachMedia({ submitUrl, title, mediaType })
params*: { title, mediaType, submitUrl }
Объект с параметрами загрузки.
submitUrl*: string
req.body.file.hash: string
Идентификатор файла в файловом хранилище приложения.
req.body.file.name: string
Исходное имя файла до загрузки в приложение.
title: string
Заголовок диалога выбора файла. Через него можно подсказать пользователю какого рода файл он выбирает.
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>
)
})