[ad_1]
Base64でエンコードされた文字列バージョンのdocxファイルがデータベースに保存されており、ファイルの内容を表示するにはFlutterアプリに埋め込む必要があります。そして、明らかにChatGPTから取得したwebview_flutterを使用してこの解決策を思いつきました。
ダーツ
import 'dart:convert'; import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class ExternalViewer extends StatefulWidget { final Uint8List fileData; const ExternalViewer({Key? key, required this.fileData}) : super(key: key); @override _ExternalViewerState createState() => _ExternalViewerState(); } class _ExternalViewerState extends State<ExternalViewer> { late WebViewController webController; late String base64Data; @override void initState() { super.initState(); base64Data = base64.encode(widget.fileData); webController = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted); loadDocument(); } void loadDocument() async { final url = 'data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,$base64Data'; await webController.loadRequest(Uri.parse(url)); } @override Widget build(BuildContext context) { return Scaffold( body: WebViewWidget( controller: webController, ), ); } }
ただし、代わりに空白の白い画面が表示され、この方法を使用してファイルをロードしようとするとアプリがクラッシュすることがあります。 このようなことが起こる原因となる間違いは何ですか? 現在の解決策が有効ではない場合、代替の解決策は何ですか? サードパーティのライブラリの提案を使用することを受け入れますが、エンコードされたbase64文字列からdocxファイルを表示できるパッケージが見つかりません。
フラッターバージョン: 3.10.2
私が試したこと:
DOCX ファイルを PDF に変換しようとしましたが、変換に失敗しました。
[ad_2]
コメント