如何创建文件并将其保存到“文件”应用程序(iOS平台)

时间:2019-05-29 08:35:45

标签: ios react-native react-native-ios

我需要创建PDF文件(完成)并将其保存到“文件”应用程序,以便用户可以在我的应用程序外部随时访问它。我尝试了rn-fetch-blobreact-native-fs软件包,它们在Android上运行良好,但在iOS上,它们只能将文件创建到内部应用程序存储中(因此,文件不在外部存储中创建,即不在iOS Files应用程序中创建) 。 我必须将我创建的文件保存到“文件”应用程序中的哪些选项?我知道这是可能的,例如Slack应用程序允许将文件保存到“文件”应用程序。

3 个答案:

答案 0 :(得分:2)

您必须添加UISupportsDocumentBrowser键并将其设置为true,或者在UIFileSharingEnabled文件中同时使用LSSupportsOpeningDocumentsInPlaceInfo.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);
                });
        }