首页 > 解决方案 > Capacitor Filesystem.getUri 未在 IOS 上返回完整文件路径

问题描述

我正在使用电容器文件系统插件来在电容器移动应用程序中写入和读取文件。在 IOS 上,我在写入文件和文件夹时使用 FilesystemDirectory.Documents 作为目录参数。当我调用 Filesystem.getUri({ path: directoryPath, directory:FilesystemDirectory.Documents }) 时,它不是返回完整路径(file://...),而是返回“/DOCUMENTS/...”,而我无法使用返回的 url 加载文件。

注意到它在 android 和电子应用程序上运行良好。关于IOS的任何帮助?

标签: ioscapacitor

解决方案


我有一个类似的问题,原来这是由于启用了应用绑定域。在这种情况下,它是在那里运行的网络版本。正如@jcesarmobile在此评论中提到的:

添加 WKAppBoundDomains 键会阻止 JavaScript 注入和其他 WKWebView 功能,除非将 limitsNavigationsToAppBoundDomains 设置为 true ...如果没有 JavaScript 注入,本机插件将不起作用,而是使用 Web 版本。

Web 版本使用相对 URI,例如/DOCUMENTS/...文件存储在浏览器的 IndexedDb 中,并且无法获得它们的完整路径。(至少在撰写本文时,请参阅这个相关的未解决问题)。

如果是这种情况,请删除该键并禁用App-Bound Domains或将limitsNavigationsToAppBoundDomains设置为trueFilesystem.getUri(..)返回以file://. 将其传递给您,您将获得一个与您的 DOM 可以使用Capacitor.convertFileSrc(..)的工作 url 。capacitor://localhost/_capacitor_file_/..


推荐阅读