dart 我如何读取内容形式的本地文件与flutter的网页?

kg7wmglp  于 2023-11-14  发布在  Flutter
关注(0)|答案(3)|浏览(111)

我想做一个类似博客系统的Flutter Web应用程序,但是当我使用'dart:io'库时,我发现它在Flutter for Web中不支持。那么,我如何使用Flutter for Web从本地markdown文件中读取内容?谢谢!并为我的英语水平道歉。

qqrboqgw

qqrboqgw1#

我在flutter web samples repo上看到了一个例子。
https://github.com/flutter/samples/blob/master/web/github_dataviz/lib/main.dart检查Future loadGitHubData() async功能。
他们使用了HttpRequest.getString()方法。这是一个理想的客户端请求,正如这里的文档所示。
https://api.dartlang.org/stable/2.4.0/dart-html/HttpRequest-class.html
我不确定这是否是你想要的。如果你只想访问MD文件的内容,这应该会有所帮助。但是如果你想将其处理成HTML或其他内容,你可能必须在服务器上完成。

juzqafwq

juzqafwq2#

我遇到了同样的问题。我需要以文本形式读取.svg文件。这是我的解决方案:

import 'dart:html';

readFile(String path) async {
    var request = await HttpRequest.request(path);
    var response = request.response;

    return response;
}

字符串

注:

使用的路径:“assets/someImage.svg”
返回:文件内容作为字符串
我把这条注解包括在上下文中。

nle07wnf

nle07wnf3#

我需要读取一个本地的模拟二进制文件的网页。这个解决方案为我工作:
1.将文件添加到资源:

root_folder/assets/mock/awesome_file.bin

字符串
1.更新pubspec.yaml:

flutter:
  assets:
    - assets/mock/


1.获取数据:

import 'dart:typed_data';
import 'package:flutter/services.dart' show rootBundle;

Future<List<int>?> getBinaryFile() async {
  try {
    final ByteData file = await rootBundle.load('assets/mock/awesome_file.bin');
    final List<int> bytes = file.buffer.asUint8List(file.offsetInBytes, file.lengthInBytes);
    return bytes;
  } on Exception catch (e) {
    print('Error getting the binary file: $e');
    return null;
  }
}

相关问题