@byteowls/capacitor-filesharer
v7.0.0
Published
Capacitor plugin to download and share files for the Web, Android and iOS
Downloads
12,691
Maintainers
Readme
Introduction
Capacitor plugin to share files on Android and iOS using the native share dialog and on Web using the FileSaver lib.
Installation
npm i @byteowls/capacitor-filesharer
npx cap syncFor further details on what has changed see the CHANGELOG.
Versions
| Plugin | For Capacitor | Docs | Notes | |--------|---------------|-------------------------------------------------------------------------------------------|---------------------------------------------------------------| | 7.x | 7.x.x | README | Breaking changes see Changelog. | | 6.x | 6.x.x | README | Breaking changes see Changelog. |
Configuration
import {
FileSharer
} from '@byteowls/capacitor-filesharer';
@Component({
template: '<button (click)="downloadButtonClick()">Download file</button>'
})
export class SignupComponent {
downloadButtonClick() {
FileSharer.share({
filename: "test.pdf",
contentType: "application/pdf",
// If you want to save base64:
base64Data: "...",
// If you want to save a file from a path:
path: "../../file.pdf",
}).then(() => {
// do sth
}).catch(error => {
console.error("File sharing failed", error.message);
});
}
}Error Codes
- ERR_PARAM_NO_FILENAME ... Filename missing or invalid.
- ERR_PARAM_NO_DATA ... Base64 data missing.
- ERR_PARAM_NO_CONTENT_TYPE ... Content type missing
- ERR_PARAM_DATA_INVALID ... Base64 data is invalid. See this comment for a possible error.
- ERR_FILE_CACHING_FAILED ... Caching the file in temp directory on the device failed.
Platform: Android
Add outState.clear() to your MainActivity. This fixes android.os.TransactionTooLargeException when sharing larger files.
package com.company.project;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity {
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.clear();
}
}Contribute
Changelog
See CHANGELOG.
License
Disclaimer
We have no business relation to Ionic.
