我需要创建PDF文件(完成)并将其保存到“文件”应用程序,以便用户可以在我的应用程序外部随时访问它。我尝试了rn-fetch-blob
和react-native-fs
软件包,它们在Android上运行良好,但在iOS上,它们只能将文件创建到内部应用程序存储中(因此,文件不在外部存储中创建,即不在iOS Files应用程序中创建) 。
我必须将我创建的文件保存到“文件”应用程序中的哪些选项?我知道这是可能的,例如Slack应用程序允许将文件保存到“文件”应用程序。
答案 0 :(得分:2)
您必须添加UISupportsDocumentBrowser
键并将其设置为true,或者在UIFileSharingEnabled
文件中同时使用LSSupportsOpeningDocumentsInPlace
和Info.plist
键
当用户通过“文件”应用从您应用的“文档”目录中打开文档时,他们将在原地编辑该文档。所做的更改将保存到您应用的“文档”目录中。
请参考this。
答案 1 :(得分:0)
我为react-native-share模块添加了新功能,以仅在<th><<button onclick="work();" > Work # </button></th>
应用中存储文件。它尚未合并,但您可以使用我的fork版本。
https://github.com/gevorg94/react-native-share/tree/share-files-app。
将Files
替换为"react-native-share": "X.X.X"
。
您可以在PR https://github.com/react-native-community/react-native-share/pull/681
中找到用法答案 2 :(得分:0)
您可以尝试使用 react-native-fs
在本地目录中保存和下载。
var url = 路径
let fileName = path.split("/").pop()
// console.log('文件名', 文件名)
var ext = this.extention(url);
分机=“。” + 分机 [0];
const localFile = ${RNFS.LibraryDirectoryPath}/${fileName}
;
// console.log('localFile', localFile)
const options = {
fromUrl: path,
toFile: localFile,
fileCache: true
};
if (await RNFS.exists(localFile)) {
FileViewer.open(localFile, { displayName: this.props.route.params.conversationSubject });
} else {
await RNFS.downloadFile(options).promise
.then((res) => {
// console.log('res', res)
FileViewer.open(localFile);
})
.then((res) => {
// success
// console.log("success", res);
})
.catch(error => {
// error
console.log("Attachment open error: ", error);
});
}