因此,我使用react-native-fs
从 url 下载文件,然后打开以查看/共享/打印它们react-native-file-viewer
。这适用于 iOS,但在 Android 上存在问题。我假设文件正在正确下载,因为在传递FileViewer
文件路径时它会“打开”文件。虽然,所显示的只是一个空白屏幕。
这是我的实现:
const fileName = 'AnImageFile.png';
const dir = RNFS.DocumentDirectoryPath;
const filePath = dir + '/' + fileName;
const options = {
fromUrl: url,
toFile: filePath,
};
RNFS.downloadFile(options)
.promise.then(() => FileViewer.open(filePath, {showOpenWithDialog: true, showAppsSuggestions: true}))
.then(() => {
console.log('File should have opened');
// Hits here, opens blank on Android
})
.catch((error) => {
console.log('There was an error opening the file');
console.log(error);
});
我也尝试过使用rn-fetch-blob
而不是react-native-fs
下载文件。但是当从中传递FileViewer
路径时,它无法找到该文件。我认为我更接近使用上述解决方案,react-native-fs
因为文件下载并且可以定位,但我可能完全错了。任何意见或建议将不胜感激。