首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么电容器把所有东西都保存到IndexedDB而不是安卓的SD卡上?

为什么电容器把所有东西都保存到IndexedDB而不是安卓的SD卡上?
EN

Stack Overflow用户
提问于 2021-03-10 19:27:55
回答 1查看 238关注 0票数 0

我正在使用Angular 9和ionic5,并试图在我的Android9设备上保存一个文件。不幸的是,每次我尝试使用电容器写入文件时,文件都被保存到IndexedDB而不是光盘/SD卡上。有没有办法告诉ionic我想保存到sdcard和/或修复我的代码?

用于保存文件的代码

代码语言:javascript
运行
复制
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中定义的

代码语言:javascript
运行
复制
<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的屏幕截图所示,该应用程序在我的安卓上运行:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-10 19:27:55

在我写完这个问题后,stackoverflow能够找到一个similar one,这个问题没有解决,但回答了我的问题。

解决方案是确保使用Plugins而不是import

对,是这样

const { Filesystem } = Plugins;

不正确

import { Filesystem } from '@capacitor/core';

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66563838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档