npm i @byteowls/capacitor-filesharer
Minimum Capacitor version is 1.0.0
This example shows the common process of configuring this plugin.
Although it was taken from a Angular 6 application, it should work in other frameworks as well.
Find the init component of your app, which is in Angular app.component.ts
and register this plugin by
import {registerWebPlugin} from "@capacitor/core";
import {FileSharer} from '@byteowls/capacitor-filesharer';
@Component()
export class AppComponent implements OnInit {
ngOnInit() {
console.log("Register custom capacitor plugins");
registerWebPlugin(FileSharer);
// other stuff
}
}
This is a workaround because the plugin registers itself but that did not work for Angular.
import {
Plugins
} from '@capacitor/core';
@Component({
template: '<button (click)="downloadButtonClick()">Download file</button>'
})
export class SignupComponent {
downloadButtonClick() {
Plugins.FileSharer.share({
filename: "test.pdf",
base64Data: "...",
contentType: "application/pdf",
}).then(() => {
// do sth
}).catch(error => {
console.error("File sharing failed", error.message);
});
}
}
- 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.
No further config is needed.
Register the plugin in com.companyname.appname.MainActivity#onCreate
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<Class<? extends Plugin>> additionalPlugins = new ArrayList<>();
// Additional plugins you've installed go here
// Ex: additionalPlugins.add(TotallyAwesomePlugin.class);
additionalPlugins.add(FileSharerPlugin.class);
// Initializes the Bridge
this.init(savedInstanceState, additionalPlugins);
}
Override the onSaveInstanceState on the main activity to avoid an issue that results in !!! FAILED BINDER TRANSACTION !!! errors when dealing with larger files (Related issue)
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.clear();
}
No further config is needed. On iOS the plugin is registered automatically by Capacitor.
- Maybe mid 2019
Please do not mix more than one issue in a feature branch. Each feature/bugfix should have its own branch and its own Pull Request (PR).
- Create a issue and describe what you want to do at Issue Tracker
- Create your feature branch (
git checkout -b feature/my-feature
orgit checkout -b bugfix/my-bugfix
) - Test your changes to the best of your ability.
- Commit your changes (
git commit -m 'Describe feature or bug'
) - Push to the branch (
git push origin feature/my-feature
) - Create a Github pull request
This repo includes a .editorconfig file, which your IDE should pickup automatically.
If not please use the sun coding convention. Please do not use tabs at all!
Try to change only parts your feature or bugfix requires.
MIT. Please see LICENSE.
This plugin is powered by BYTEOWLS Software & Consulting and was build for Team Conductor - Next generation club management platform.
We create plugins for apps we build and share them as it is with the community.
I you have a feature request, need support how to using the plugin or need a release breaking with our normal release cycle you have the possibility to sponsor the development by paying for this custom development or support.
See the wiki page for how to request a quote.