Реагировать на собственный обмен/загрузку файла на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Реагировать на собственный обмен/загрузку файла на Android

Сообщение Anonymous »

Я создал приложение React Native и пытаюсь предоставить возможность просмотра файлов/загрузки файлов.
Файлы создаются из API, который обслуживает их как строку в кодировке Base64.
Изначально, если файл представляет собой PDF-файл, он представлен в компоненте Pdf из реакции-native-pdf, который отлично работает.
Однако в некоторых случаях файл также может быть еще одним расширением; .xslx, .docx, ... в основном типы, которые невозможно открыть в программе просмотра PDF. В этом случае
строка преобразуется в реальный файл и впоследствии может быть загружена с помощью обмена экспо:

Код: Выделить всё

import * as FileSystem from 'expo-file-system';
import { shareAsync } from 'expo-sharing';
import { useCallback } from 'react';
import { lookup } from 'react-native-mime-types';

type UseDownloadFileProps = {
source: string;
fileType: string;
};

type DownloadFileHandler = {
handleDownload: () => Promise;
};

const useDownloadFile = ({ source, fileType }: UseDownloadFileProps): DownloadFileHandler => {
const handleDownload = useCallback(async () => {
const fileUri = `${FileSystem.documentDirectory}file.${fileType}`;
try {
await FileSystem.writeAsStringAsync(fileUri, source.split(',')[1], {
encoding: FileSystem.EncodingType.Base64,
});

let mimeType = lookup(fileType);
await shareAsync(fileUri, {
...(mimeType && { mimeType }),
});
} catch (error) { }
finally {
await FileSystem.deleteAsync(fileUri);
}
}, [source, fileType]);

return { handleDownload };
};

export default useDownloadFile;
Для iOS этот вариант общего доступа работает отлично и позволяет использовать опцию «сохранить в файлы», что мне и нужно:
Изображение

Для Android я видел случаи, когда это же (выглядящее) меню общего доступа также содержит опции для открытия файла с помощью другое приложение. В моем случае он содержит только параметры общего доступа:
Изображение

Есть ли что-то, что мне не хватает при совместном использовании выставок, что могло бы позволить использовать эту опцию?
Или есть лучший способ загрузить файл?
Спасибо за продвигаться

Подробнее здесь: https://stackoverflow.com/questions/793 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»