Flutter: Error: MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)

Flutter: Error: MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)

我正在使用 Flutter-web,我想导出 pdf。我正在使用 pdf 包,我正在尝试从他们的文档中实现一个简单的例子。更具体地说,我有一个名为 export_pdf.dart 的文件,其中的代码如下。

import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
import 'package:universal_io/io.dart';
import 'package:path_provider/path_provider.dart';

exportPdf() async {
  final pdf = Document();

  pdf.addPage(Page(
      pageFormat: PdfPageFormat.a4,
      build: (Context context) {
        return Center(
          child: Text("Hello World"),
        ); // Center
      })); // Page

  final output = await getTemporaryDirectory();
  final file = File("${output.path}/example.pdf");
  await file.writeAsBytes(await pdf.save());
}

当我通过单击按钮调用 exportPdf() 函数时,出现以下错误。

Uncaught (in promise) Error: MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)

我一直在寻找这个问题很长时间,但没有解决这个问题。

即使 path_provider 包被导入,getTemporaryDirectory() 也从未被调用,就像它不存在一样。

我还需要说明一下,我使用的是 universal_io,而不是 dart:io,因为我使用的是 flutter_web.

我正在调用的每个函数都会出现此错误,并且存在于 path_provider/path_provider.dart 文件中。我还在 path_provider/path_provider.dart 中添加了一个简单的打印函数,但我收到一条错误消息,提示未找到该方法。

感谢您的宝贵时间。

运行 这些命令

flutter clean
flutter pub get
flutter run

确保在第一个命令后,build 文件夹被删除。

我发现目前这个包不支持网页保存文件,建议使用打印插件打印或分享文件。