emilkitua opened a new issue, #612:
URL: https://github.com/apache/cordova-plugin-file/issues/612
# Bug Report
Getting error code 2 when saving pdf file on Android 13
## Problem
I have an application that saves files downloaded from web to the phone.
when upgrading to android 13, it doesnot work. All changes prior that worked on
both android 11 and 12. Also permission requests is not shown, although i am
aware of the permission changes in Android 13. just not sure if it is checked
in the background
### What is expected to happen?
I expected the file to be saved on the phone, and i can trigger google drive
to open the file so the user can view the pdf file.
### What does actually happen?
I am getting error { "code": 2 } i.e SECURITY_ERR when i try to create the
file. Looking it up, it relates to permission issue
## Information
my current code to save the file
` async saveImageToDevice(folderpath,filename,content,contentType){
const loading = await this.loadingCtrl.create();
await loading.present();
//Determine a native file path to save to
let filePath = '';
if(this.plt.is('android')) {
filePath = this.file.externalRootDirectory + "/Download";
} else if(this.plt.is('ios')) {
filePath = this.file.documentsDirectory;
} else {
this.file.cacheDirectory
}
// let filePath = (this.plt.is('android')) ?
this.file.externalRootDirectory : this.file.cacheDirectory;
//Write the file
if (this.plt.is("pwa")) {
const url = window.URL.createObjectURL(
content
);
const link = window.document.createElement("a");
link.href = url;
link.setAttribute("download", filename);
window.document.body.appendChild(link);
link.click();
link.remove();
await loading.dismiss();
} else {
return this.file.writeFile(
filePath,
filename,
content,
{ replace: true}
).then((success)=> {
loading.dismiss();
this.logging.log("File created Succesfully" +
JSON.stringify(success))
this.alertMessage('File downloaded to device. Check downloads for
the receipt file.', filename)
})
.catch((err) => {
loading.dismiss();
this.logging.error("Error creating file: " + JSON.stringify(err));
this.notification.showAlert("Error","Error creating file: " +
JSON.stringify(err));
throw err; //Rethrow - will be caught by caller
});
}
}`
### Version information
Ionic:
Ionic CLI : 6.19.1
(C:\Users\....\AppData\Roaming\npm\node_modules\@ionic\cli)
Ionic Framework : @ionic/angular 6.7.5
@angular-devkit/build-angular : 14.2.13
@angular-devkit/schematics : 14.2.13
@angular/cli : 14.2.13
@ionic/angular-toolkit : 6.1.0
Cordova:
Cordova CLI : 11.0.0
Cordova Platforms : android 12.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0,
cordova-plugin-ionic-webview 5.0.0, (and 19 other plugins)
Utility:
cordova-res : 0.15.4
native-run (update available: 1.7.2) : 1.6.0
System:
Android SDK Tools : 26.1.1 (C:\Users\...\AppData\Local\Android\Sdk)
NodeJS : v16.14.2 (C:\Program Files\nodejs\node.exe)
npm : 8.5.0
OS : Windows 10
### Package.json
`
{
...
"dependencies": {
...
"@awesome-cordova-plugins/file": "^6.4.0",
...
},
"devDependencies": {
...
"cordova-plugin-file": "^8.0.0",
...
},
"description": "An Ionic project",
"cordova": {
"plugins": {
...
"cordova-plugin-file": {
"ANDROIDX_WEBKIT_VERSION": "1.4.0"
}
},
"platforms": [
"android"
]
}
}
`
## Checklist
<!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
- [x ] I searched for existing GitHub issues
- [x ] I updated all Cordova tooling to most recent version
- [x ] I included all the necessary information above
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]