npm i @byteowls/capacitor-filesharer
Minimum Capacitor version is 2.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
import com.byteowls.capacitor.filesharer.FileSharerPlugin;
@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.
- No timeline.
See CHANGELOG.
MIT. Please see LICENSE.
This plugin is powered by BYTEOWLS Software & Consulting and was build for Team Conductor - Next generation club management platform.