@Majest228

Можно ли скачивать файлы из telegram mini app?

Необходимо скачивать файлы из telegram mini app. Я реализован код, но он работает только на компьютере, через приложение мобильное телеграм, почему то, не скачивается документ.

import { useQuery } from '@tanstack/react-query'
import { UserService } from '../../services/user.service'
import { useTelegramWebApp } from '../../hooks/useTelegram'
import { ReportService } from '../../services/report.service'

const Reports = () => {
	const userId = useTelegramWebApp()
	const { data: currentUser } = useQuery({
		queryKey: ['currentUser', userId],
		queryFn: () => UserService.getUserById(userId),
		enabled: userId != null,
	})

	const downloadReport = async (isAuth: string) => {
		if (!currentUser?.organizationId) return

		try {
			const response = await ReportService.generatePdfReportByHRForUsers(
				currentUser.organizationId,
				'test',
				isAuth
			)

			const url = window.URL.createObjectURL(new Blob([response.data]))
			const link = document.createElement('a')
			link.href = url
			link.setAttribute('download', 'report.xlsx')
			document.body.appendChild(link)
			link.click()
			link.remove()

			toast.success('Отчет успешно скачан!')
		} catch (error) {
			toast.error('Ошибка при скачивании отчета.')
			console.error('Error downloading report:', error)
		}
	}

	return (
		<div className='w-[90%] max-w-2xl mx-auto mt-8 mb-24'>
			<div className='grid grid-cols-1 gap-6 mt-6'>
				<button
					className='p-6 bg-white shadow-lg rounded-lg flex items-center justify-between hover:bg-blue-50 transition w-full text-left'
					onClick={() => downloadReport('false')}
				>
					<div>
						<h2 className='text-lg font-semibold'>
							Отчет по неавторизованным пользователям
						</h2>
					</div>
				</button>

				<button
					className='p-6 bg-white shadow-lg rounded-lg flex items-center justify-between hover:bg-blue-50 transition w-full text-left'
					onClick={() => downloadReport('true')}
				>
					<div>
						<h2 className='text-lg font-semibold'>
							Отчет по авторизованным пользователям
						</h2>
					</div>
				</button>

				<button className='p-6 bg-white shadow-lg rounded-lg flex items-center justify-between hover:bg-blue-50 transition w-full text-left'>
					<div>
						<h2 className='text-lg font-semibold'>Скачать изображение</h2>
					</div>
				</button>
			</div>
		</div>
	)
}

export default Reports
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
12 нояб. 2024, в 19:27
1000 руб./за проект
12 нояб. 2024, в 19:03
10000 руб./за проект
12 нояб. 2024, в 18:57
500000 руб./за проект