This is forked from customautosys/cordova-plugin-saf-mediastore to address the following issues:
- possible confliciting permission with other plugins (removed config-file entry for Android READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions; must eventually be added manually to config.xml)
DISCLAIMER: this repo is only for the above mentioned one-time enhancements! it will not be under further development!
This plugin allows you to read and save files using the Storage Access Framework and Mediastore on Android only.
selectFolder(uri:string):Promise<string>
Launches an Intent to select a folder to which files can be saved. Returns the content URI.
selectFile(uri:string):Promise<string>
Launches an Intent to select a file. Returns the content URI.
openFolder(uri:string):Promise<void>
Launches an Intent to open a folder in the folder picker.
openFile(uri:string):Promise<void>
Launches an Intent to open a file.
readFile(uri:string):Promise<ArrayBuffer>
Reads a file as an ArrayBuffer.
writeFile(params:{
data:string,
filename:string,
folder?:string,
subFolder?:string
}):Promise<string>
Writes a file to a specific filename, with the folder and subfolder being optional. The subfolder will be created if it does not exist, and the default folder is the Downloads folder (saved via Mediastore). Returns the content URI. data
is a Base 64 string.
overwriteFile(params:{
uri:string,
data:string
}):Promise<string>
Overwrites a file at a specific content URI. Returns the content URI.
saveFile(params:{
data:string,
filename?:string,
folder?:string
}):Promise<string>
Launches a file picker Intent to save a file, with the preferred filename and folder being optional. Returns the content URI. data
is a Base 64 string.
deleteFile(uri:string):Promise<number>
Deletes a file at a specific content URI. Returns the number of files deleted.
getFileName(uri:string):Promise<string>
Returns the filename of the corresponding content URI.
getUri(params:{
folder:string,
subFolder?:string,
filename?:string,
}):Promise<string>
Returns the content URI of the file in the corresponding folder and subfolder.
To call methods:
cordova.plugins.safMediastore.<function>(params); //returns a Promise
await cordova.plugins.safMediastore.<function>(params); //in an async function