Skip to content

Repository files navigation

open_document

Used to create a folder on the user's mobile phone and Desktop;

  • Android stays inside documents with the name of your app
  • iOs is in your app's name files
  • Windows Documents

Opening pdf, xlsx, docs, ppt and zip files


Getting Started

Android ->> config res -> create folder -> xml -> create provider_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="." />
</paths>

Add AndroidManifest :

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.open_document_example.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>

iOs config -> info.plist Add Create folder em Document

 <key>LSSupportsOpeningDocumentsInPlace</key>
<true/>

USED ->

final name = await OpenDocument.getNameFile(url: url);
final path = await OpenDocument.getPathDocument();
filePath = "$path/$name";
final isCheck = await OpenDocument.checkDocument(filePath: filePath);
try {
if (!isCheck) {
filePath = await downloadFile(filePath: "$filePath", url: url);
}
await OpenDocument.openDocument(filePath: filePath);
} on OpenDocumentException catch (e) {
debugPrint("ERROR: ${e.errorMessage}");
filePath = 'Failed to get platform version.';
}
Future<String> downloadFile({String filePath, String url}) async {
// CancelToken cancelToken = CancelToken();
Dio dio = new Dio();
await dio.download(
url,
filePath,
onReceiveProgress: (count, total) {
debugPrint('---Download----Rec: $count, Total: $total');
setState(() {
_platformVersion = ((count / total) * 100).toStringAsFixed(0) + "%";
});
},
);
return filePath;
}

How to access the folder created with the files and view and delete:

With StyleFile you can change some settings of Viewing Your Screen with Your Files

StyleMyFile.elevatedButtonText = "Compartilhar";

Call preview screen


pushScreen() async {
String name = await OpenDocument.getNameFolder();
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => MyFilesScreen(filePath: name),
),
);
}

About

flutter lib android e ios salvar e abrir documents tipo pdf, ppt e excel ...etc

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages