ios - Capacitor Filesystem.getUri 未在 IOS 上返回完整文件路径
问题描述
我正在使用电容器文件系统插件来在电容器移动应用程序中写入和读取文件。在 IOS 上,我在写入文件和文件夹时使用 FilesystemDirectory.Documents 作为目录参数。当我调用 Filesystem.getUri({ path: directoryPath, directory:FilesystemDirectory.Documents }) 时,它不是返回完整路径(file://...),而是返回“/DOCUMENTS/...”,而我无法使用返回的 url 加载文件。
注意到它在 android 和电子应用程序上运行良好。关于IOS的任何帮助?
解决方案
我有一个类似的问题,原来这是由于启用了应用绑定域。在这种情况下,它是在那里运行的网络版本。正如@jcesarmobile在此评论中提到的:
添加 WKAppBoundDomains 键会阻止 JavaScript 注入和其他 WKWebView 功能,除非将 limitsNavigationsToAppBoundDomains 设置为 true ...如果没有 JavaScript 注入,本机插件将不起作用,而是使用 Web 版本。
Web 版本使用相对 URI,例如/DOCUMENTS/...
文件存储在浏览器的 IndexedDb 中,并且无法获得它们的完整路径。(至少在撰写本文时,请参阅这个相关的未解决问题)。
如果是这种情况,请删除该键并禁用App-Bound Domains或将limitsNavigationsToAppBoundDomains设置为true
并Filesystem.getUri(..)
返回以file://
. 将其传递给您,您将获得一个与您的 DOM 可以使用Capacitor.convertFileSrc(..)
的工作 url 。capacitor://localhost/_capacitor_file_/..
推荐阅读
- c++ - 为什么 STL 的 next_permutation 实现不使用二分查找?
- flutter - Flutter & Dart 用短信发送录音
- apache-spark - spark 提交配置执行器、最大核心数和执行器核心数
- twitter - 如何使用 twitter4j 修复 Twitter v1 API 上的错误 401/32?
- python - 无法使用 Airflow 从 GCP Composer 连接到 FTP 服务器
- scala - 引用未完全初始化
- c++ - 我应该使用什么类型来存储和打印这些 unicode 字符?(C++)
- javascript - 样式化组件引用错误:初始化前无法访问“组件”
- java - 如何将 3D 对象数组的元素转换为整数/字符串等
- r - 在R中读取csv时如何删除标题处的“i”符号?