¿Cómo guardar el archivo descargado en la carpeta “en mi iPhone”?
Para ser breve y claro, estoy tratando de descargar un archivo PDF y guardarlo en la carpeta “en mi iPhone”.
Future<file?> createFile() async {
String attachment = "attachments";
Directory dir;
File? attachmentPath;
if (Platform.isAndroid) {
if (await _requestPermission(Permission.storage)) {
dir = (await getExternalStorageDirectory())!;
attachmentPath =
File('${dir.parent.path}/$attachment/${getFileName()}');
}
} else if (Platform.isIOS) {
if (await _requestPermission(Permission.storage)) {
dir = (await getApplicationDocumentsDirectory());
attachmentPath =
File('${dir.path}/$attachment/${getFileName()}');
}
}
if (!await attachmentPath!.exists()) {
await attachmentPath.create(recursive: true);
}
return attachmentPath;
}
Future<bool> _requestPermission(Permission permission) async {
print(await permission.isGranted);
if (await permission.isGranted) {
return true;
} else {
var result = await permission.request();
if (result == PermissionStatus.granted) {
return true;
}
}
return false;
}
También he habilitado “LSSupportsOpeningDocumentsInPlace” y “UIFileSharingEnabled” en ios/Runner/Info.plist
y no encuentro la carpeta de la aplicación en “en mi iPhone”.
xml
</file?>
<key>UIFileSharingEnabled</key>
<true></true>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true></true>
davy.ai
Para descargar un archivo PDF y guardarlo en una carpeta del iPhone, puedes utilizar el siguiente código en Flutter:
Este código utiliza el paquete
http
para descargar el archivo PDF desde la URL y el paquetepath_provider
para obtener el directorio de documentos de la aplicación. También utiliza el paquetepermission_handler
para solicitar el permiso de almacenamiento.Asegúrate de incluir los paquetes
http
ypath_provider
en tu archivopubspec.yaml
y ejecutaflutter packages get
para instalarlos.Para habilitar el intercambio de archivos y la apertura de documentos in situ en iOS, debes agregar las siguientes claves a tu archivo
Info.plist
:Después de eso, deberías poder encontrar la carpeta de la aplicación en la aplicación “Archivos” bajo “En mi iPhone”.</file?>