在运行时向 Flutter 应用添加动态资源

Nis*_*eph 5 caching flutter

我有 Flutter 应用程序,需要加载动态资源和内容,我想保存这些内容以供以后使用。我知道我可以在应用程序内的文件夹“assets/”中构建时拥有的资产。

我想使用 ZIP 文件下载内容并将其解压缩到应用程序本地文件夹,这样它们就不会在下一次应用程序更新中删除。

Flutter 允许我在运行时向哪些文件夹添加资源?

Son*_*low 3

您无法在运行时动态地将资源添加到 Flutter 应用程序,这就是为什么 Shared_Preferences 包是由官方 Flutter_Dev 团队开发的。

https://pub.dev/packages/shared_preferences

如果您想存储File而不是位信息,请参阅以下示例代码(对于图像文件):

Future getImage(ImageSource imageSource) async {
// using your method of getting an image
final File image = await ImagePicker.pickImage(source: imageSource);

// getting a directory path for saving
final String path = await getApplicationDocumentsDirectory().path;

// copy the file to a new path
final File newImage = await image.copy('$path/image1.png');

setState(() {
  _image = newImage;
});} 
Run Code Online (Sandbox Code Playgroud)

如果您仍然想以某种方式动态添加/删除文件,那么答案是这实际上是不可能的,因为资产并不是为动态存储文件而设计的。

人们应该只使用资产来存储对所有用户都通用的文件。