通过电容访问公用文件夹中的文件
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);
)
);
【讨论】:
以上是关于通过电容访问公用文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章