为什么flutter中的open_file无法在我的应用程序中打开任何文件?

时间:2019-01-04 07:28:07

标签: dart flutter

我正在使用移动应用程序-我正在使用flutter,它需要查看我资产中的文档。我使用了pdfviewer,它工作得很好。但是使用openfile则不会。

我用了flutter包装, https://pub.dartlang.org/packages/flutter_pdf_viewer并打开pdf文件,但是使用此软件包https://pub.dartlang.org/packages/open_file不会打开任何文件。 这就是我的称呼方式:

onPressed: () => FlutterPdfViewer.loadAsset("assets/files/sample.pdf"),

onPressed: () => OpenFile.open('assets/files/samplefile.docx'),

我不知道其他方法来快速打开文件。我使用错误的open_file吗?希望您能帮助我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您需要使用资产的完整路径更新pubspec.yaml

flutter:
  assets:
    - assets/files/samplefile.docx

答案 1 :(得分:0)

 Future<File> pdfAsset() async {
    Directory tempDir = await getTemporaryDirectory();
    File tempFile = File('${tempDir.path}/set_any_name.pdf');
    ByteData bd = await rootBundle.load('assets/en/legal_notes.pdf');
    await tempFile.writeAsBytes(bd.buffer.asUint8List(), flush: true);
    return tempFile;
  }
pdfAsset().then((file){OpenFile.open(file.path);});

您好,首先将资产复制到临时文件,然后使用OpenFile打开文件。 它对我有用。