Flutterプロジェクトでは、PDFドキュメントを作成します。アプリのパスにドキュメントを保存できます。しかし、ユーザーはそれにアクセスできません。または、ユーザーに表示される別のフォルダーにファイルを保存するにはどうすればよいですか?
import 'package:path_provider/path_provider.Dart';
Future<void> savePdfDocument() async {
final PdfCreater generatedPdf = PdfCreater(document);
final List<int> generatedPdfDocument = generatedPdf.buildPdf();
final String dir = (await getApplicationDocumentsDirectory()).path;
final String path = '$dir/example.pdf';
final File file = File(path);
file.writeAsBytesSync(generatedPdfDocument);
}
downloads_path_provider を使用しますAndroidの場合、ダウンロード時にファイルを保存します。
iOSの場合、getApplicationDocumentsDirectory
from path_providerを使用し、info.plist
に権限を追加して、ユーザーにフォルダーを表示する必要があります。
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
このアプリをAndroidでのみ使用している場合は、以下を使用してみてください。
Future<Directory> getExternalStorageDirectory()
path_provider
プラグインから。
このメソッドを使用して、ストレージ内の最上位のパブリックアクセス可能なディレクトリに移動します。ここから、サブディレクトリパスを/Downloads/your_file_name
として追加できます。
これはおそらくあなたを助けるはずです。表示されない場合は、コメントを追加してお知らせください。
メソッドのソースコード documentation :
/// Path to a directory where the application may access top level storage.
/// The current operating system should be determined before issuing this
/// function call, as this functionality is only available on Android.
///
/// On iOS, this function throws an [UnsupportedError] as it is not possible
/// to access outside the app's sandbox.
///
/// On Android this uses the `getExternalFilesDir(null)`.