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