我正在使用Angular 9和ionic5,并试图在我的Android9设备上保存一个文件。不幸的是,每次我尝试使用电容器写入文件时,文件都被保存到IndexedDB而不是光盘/SD卡上。有没有办法告诉ionic我想保存到sdcard和/或修复我的代码?
用于保存文件的代码
const fileName = decodeURIComponent(attachment.Name);
const savedFile = await Filesystem.writeFile({
    path: fileName,  // filename.png
    data: attachment.Content,  // base64 encoded png file
    directory: FilesystemDirectory.ExternalStorage,
});
console.log(savedFile.uri);权限
应用程序应具有写入SD卡的权限,因为这是在AndroidManifest.xml中定义的
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>预期结果
根据documentation,这应该会将文件保存到SD卡的根目录。
实际结果
执行此命令时,返回的URI为/EXTERNAL_STORAGE/filename.png,但该文件不在SD卡中,因为它保存在IndexedDB中,如Chrome Inspector的屏幕截图所示,该应用程序在我的安卓上运行:

发布于 2021-03-10 19:27:55
在我写完这个问题后,stackoverflow能够找到一个similar one,这个问题没有解决,但回答了我的问题。
解决方案是确保使用Plugins而不是import
对,是这样
const { Filesystem } = Plugins;
不正确
import { Filesystem } from '@capacitor/core';
https://stackoverflow.com/questions/66563838
复制相似问题