>source

시도했지만 pdf 파일이로드되지 않습니다. 이것은 내 코드입니다

import 'package:flutter/material.dart';
import 'package:flutter_plugin_pdf_viewer/flutter_plugin_pdf_viewer.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
  bool _isLoading = true;
  PDFDocument document;
  @override
  void initState() {
    super.initState();
    loadDocument();
  }
  loadDocument() async {
    document = await PDFDocument.fromUrl('https://drive.google.com/drive/u/0/folders/1ei6916qmZ34LZECNf5e0DlvB7EJqxqz8');
    setState(() => _isLoading = false);
  }
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(  
        appBar: AppBar(
          title: const Text('PDF FILE'),
        ),
        body: Center(`enter code here`
            child: _isLoading
                ? Center(child: CircularProgressIndicator())
                : PDFViewer(document: document)),
      ),
    );
  }
}

  • 답변 # 1

    링크 (https://drive.google.com/drive/u/0/folders/1ei6916qmZ34LZECNf5e0DlvB7EJqxqz8)의 ID가 폴더 ID 인 것 같습니다.

    링크를 얻으려면 파일을 엽니 다. 새 창에서 Url을 코드에 복사하십시오.

    링크가 작동하지 않으면 이전에받은 URL에서 파일 ID를 삽입하는 다음 링크 형식을 시도해보세요.

    https://drive.google.com/file/d/fileId/
    
    

  • 답변 # 2

    이를 위해서는 Google의 인증 된 사용자 여야합니다.

    그리고 성공적으로 로그인 한 후

    다음 API를 사용하여 드라이브 데이터를 검색하십시오.

    https://www.googleapis.com/drive/v2/files
    
    

    또한 인증 키를 사용하여 헤더를 통해 토큰을 전달해야합니다.

    "Authorization" = "Bearer " + token
    
    

    또는 단순히 URL을 복사하여 사용하는 것보다 파일의 공개 링크를 만들 수 있습니다.

  • 답변 # 3

    공개적으로 공유 된 드라이브의 pdf 파일을 직접 사용할 수 없습니다.

관련 자료

  • 이전 frontend - JSP의 드롭 다운 목록에서 기본값을 설정하는 방법은 무엇입니까?
  • 다음 python - gspread acell을 사용하여 특정 시트 범위 가져 오기