Загрузите PDF-файлы в первый раз с помощью программы просмотра PDF-файлов Syncfusion flutter.

Я использую средство просмотра PDF-файлов Syncfusion flutter. Здесь можно ли загрузить файлы PDF, пока файл будет открыт в первый раз? Чтобы в следующий раз не требовалось подключение к интернету? Если да, то как это сделать?


person Rifat Hossain    schedule 29.11.2020    source источник


Ответы (1)


Да, можно один раз загрузить PDF-файл и использовать его до закрытия приложения. В следующем примере кода показано, как игнорировать несколько загрузок PDF, когда виджет SfPdfViewer перестраивается или переключается между разными страницами.

class _MyHomePageState extends State<MyHomePage> {

  final String _url = 'https://cdn.syncfusion.com/content/PDFViewer/flutter-succinctly.pdf';
  Uint8List _pdfBytes;

  // Downloads the PDF from the URL
  void downloadPDF()
  async {
    final HttpClient client = HttpClient();
    final HttpClientRequest request = await client.getUrl(Uri.parse(_url));
    final HttpClientResponse response = await request.close();
    _pdfBytes = await consolidateHttpClientResponseBytes(response);
    setState(() {
    });
  }
  @override
  void initState() {
    super.initState();
    downloadPDF();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: 2,
        child: Scaffold(
          appBar: AppBar(
            bottom: TabBar(
              tabs: [
                Tab(icon: Icon(Icons.looks_one)),
                Tab(icon: Icon(Icons.looks_two)),
              ],
            ),
            title: Text('PDFVIEWER'),
          ),
          body: TabBarView(
            children: [
              _pdfBytes == null ? Center(child: CircularProgressIndicator()) : SfPdfViewer.memory(
                  _pdfBytes),
              Text('Go back to first tab'),
            ],
          ),
        ),
      ),
    );
  }

Примечание: я работаю в Syncfusion.

С уважением, Дилли Бабу.

person Dillibabu Nandhagopal    schedule 01.12.2020
comment
Спасибо за ваш отзыв, но я хочу, чтобы загруженные PDF-файлы хранились в памяти телефона и открывались оттуда в автономном режиме даже после закрытия и повторного открытия приложения. Это возможно? - person Rifat Hossain; 02.12.2020
comment
@RifatHossain, Да, с помощью path_provider и SfPdfViewer.File() можно открыть загруженный PDF-файл из памяти телефона. Найдите ссылку на документацию. Чтение файла из памяти телефона: flutter.dev/docs/cookbook/persistence/ Загрузка файла в SfPdfViewer: pub.dev/documentation/syncfusion_flutter_pdfviewer/latest/ — Дилли Бабу - person Dillibabu Nandhagopal; 02.12.2020