如何在Flutter应用中打开pdf,pptx,doc,docx文件?

时间:2020-02-12 14:03:47

标签: flutter dart

如果我单击文件,如何在flutter应用程序中打开该文件。 这就是我所做的:

enter image description here

此代码用于在列表视图中显示广告

ListView.builder(
              scrollDirection: Axis.vertical,
              shrinkWrap: true,
              itemCount: attachments.length,
              itemBuilder: (BuildContext ctxt, int index) {
                print (index);
                return ListView(
                    scrollDirection: Axis.vertical,
                    shrinkWrap: true,
                    children: <Widget>[
                      Padding(
                        padding: const EdgeInsets.all(1.0),
                        child: ListTile(
                          leading: CircleAvatar(
                            child: _getIcon(
                                attachments[index].split('/').removeLast()),
                            backgroundColor: Colors.white,
                          ),
                          subtitle:
                          Text(attachments[index].split('/').removeLast()),
                          onTap: (){}
                        ),
                      ),
                    ]);
              })

我使用过open_file包,但是它不能正常工作,这是我做过的代码:

            onTap: () async {
            String fileUrl = widget.schoolDcUrl + "/container"attachments[index];
            final _openFile = await OpenFile.open(fileUrl);
             Logger.i(_openFile);
                              }

当我单击文件时,它没有打开文件,它将在未找到终端文件上显示一条消息。

我希望onTap在应用程序中打开该文件。

3 个答案:

答案 0 :(得分:1)

pubspec.yaml中添加:

dev_dependencies:
   open_file: ^3.0.1

在代码中添加:

import 'package:open_file/open_file.dart';

OpenFile.open("/sdcard/example.pptx");


open_file文档:
https://pub.dev/packages/open_file#-readme-tab-

答案 1 :(得分:0)

您应该能够使用flutter_filereader软件包来打开所有这些文件格式。

确保遵循自述文件中的配置和示例。

答案 2 :(得分:0)

无需下载文件,您可以使用以下软件包从URL打开:url_launcher 5.4.1

_launchURL(String url) async {
  const url = url; // you can use your url
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw 'Unable to open url : $url';
  }
}