Загрузить файл pdf с url - PullRequest
0 голосов
/ 29 мая 2020

У меня есть URL-адрес с сервера https://xxxx.pdf20200529 ". Как я могу загрузить его в формате PDF в моем приложении flutter?

Я использую этот плагин , но ничего не произошло.

Код

OpenFile.open(value);  // value is https://xxxx.pdf20200529

Редактировать

 generatePDF(dynamic value) async {
    final filename = value.substring(value.lastIndexOf("/") + 1);
    var request = await HttpClient().getUrl(Uri.parse(value));
    var response = await request.close();
    var bytes = await consolidateHttpClientResponseBytes(response);
    String dir = (await getApplicationDocumentsDirectory()).path;
    File file = new File('$dir/$filename');
    await file.writeAsBytes(bytes);
    OpenFile.open(file.path);
  }

Ответы [ 3 ]

1 голос
/ 29 мая 2020

Вы пробовали url_launcher 5.4.10

Насколько я знаю, он также открывает pdf-файлы.

1 голос
/ 29 мая 2020

Открывать PDF-файлы во Flutter довольно неудобно. Поэтому я предлагаю вам использовать пакет. flutter_full_pdf_viewer работает довольно хорошо и прост в использовании, но есть и другие.

https://pub.dev/packages/flutter_full_pdf_viewer

Это будет ваш экран PDF:

class PDFScreen extends StatelessWidget {
  String pathPDF = "";
  PDFScreen(this.pathPDF);

  @override
  Widget build(BuildContext context) {
    return PDFViewerScaffold(
        appBar: AppBar(
          title: Text("Document"),
          actions: <Widget>[
            IconButton(
              icon: Icon(Icons.share),
              onPressed: () {},
            ),
          ],
        ),
        path: pathPDF);
  }
}

Перейдите к нему вот так. Не забудьте указать на экране локальный путь:

Navigator.push(context, MaterialPageRoute(builder: (context) => PDFScreen(pathPDF)),
0 голосов
/ 29 мая 2020

Я пропускаю .pdf в этой строке

File file = new File('$dir/$filename.pdf');

После добавления .pdf все средства просмотра PDF могут открываться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...