通过电容访问公用文件夹中的文件

Posted

技术标签:

【中文标题】通过电容访问公用文件夹中的文件【英文标题】:Accessing file in public folder through capacitor 【发布时间】:2021-07-03 10:56:17 【问题描述】:

我正在使用 ionic-v5、capactior 和 react 来构建应用程序。

我的public/ 文件夹中存储了一个文件 (data.json)。

我只是希望能够加载该文件并将其存储为一个对象。

到目前为止我已经尝试过:

import  Filesystem, FilesystemEncoding  from '@capacitor/core'

let contents = await Filesystem.readFile(
    path: "data.json",
    encoding: FilesystemEncoding.UTF8,
)
import  HTTP  from '@ionic-native/http';

let response = await HTTP.get("file://data.json", , );
ret = response.data;

return ret;

我也看过https://ionicframework.com/docs/native/file,但至少可以说文档很差。

除此之外,我还尝试将 /android_asset/public 预先添加到所有路径,但没有运气(我知道它只适用于 Android,我只是想得到一些东西)。

【问题讨论】:

尝试在path 属性中使用完整路径。还要指定目录。这里的示例显示了这一点:capacitorjs.com/docs/apis/filesystem#readfile 【参考方案1】:

如果您使用 Ionic React (v5) 并且只想访问 /myapp/public 中的文件,则不需要 Capacitor。

您可以使用axios(或fetch)。

文件夹结构:

/myapp
    /assets
        /json
             /myFile.json

示例代码:

// https://***.com/a/52570060
export const fetchJsonFile = (fileName: string): Promise<any> => (
  axios.get(`./json/$fileName`)
    .then((response) => response).catch((error) => 
      Promise.reject(error);
    )
);

【讨论】:

以上是关于通过电容访问公用文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章

每个人都可以通过 URL 访问 rails 公用文件夹吗?

无法从反应应用程序访问快速服务器中的公用文件夹

如何访问公用文件夹外的图像(Laravel)[重复]

Exchange Onine 公用文件夹

Laravel5 如何从控制器访问公用文件夹

如何从资源文件夹动态加载资产到公用文件夹并使用asset()助手访问它们