Ionic 5/Angular Action Sheet Example with Cordova and Ionic Native 5
In this tutorial, we are going to cover how to create and display an Action Sheet with a detailed example using Ionic 5 (Ionic 4) framework.
Action Sheets are used to dispaly a set of buttons and actions for the user to choose from.
Create a New Ionic 5/Angular Project
First create a new Ionic 5 project using the Ionic CLI (I'm using CLI 5). You can also use an existing app:
ionic start ActionSheetExample blank
Next install the ActionSheet Cordova plugin and Ionic Native wrapper:
ionic cordova plugin add --save cordova-plugin-actionsheet
npm install --save @ionic-native/action-sheet
Next, open the src/app/app.module.ts file and add ActionSheet to the list of providers as follows:
import { ActionSheet } from '@ionic-native/action-sheet';
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage
],
providers: [
StatusBar,
SplashScreen,
ActionSheet,
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}
Next, open the src/pages/home/home.html file and add a button as follows:
<button ion-button (click)="openActionSheet()" class="button">Open Action Sheet</button>
Next, in the src/pages/home/home.ts file, import and inject ActionSheet as follows:
import { ActionSheet, ActionSheetOptions } from '@ionic-native/action-sheet';
export class ActionSheetPage {
constructor(private actionSheet: ActionSheet) {
}
openActionSheet(){}
/* ...*/
Next, implement the openActionSheet()
method as follows:
openActionSheet(){
let buttonLabels = ['Button 0', 'Button 1'];
const options: ActionSheetOptions = {
title: 'Action Sheet Title',
subtitle: 'Choose an action',
buttonLabels: buttonLabels,
addCancelButtonWithLabel: 'Cancel',
addDestructiveButtonWithLabel: 'Delete',
destructiveButtonLast: true
};
this.actionSheet.show(options).then((buttonIndex: number) => {
console.log('Button pressed: ' + buttonIndex);
});
}
You can then implement the logic of each button on the Promise returned by the this.actionSheet.show(options)
method based on the clicked button index.
Now, add a target platform (Android or iOS) and run your app using an emulator or real device:
ionic cordova platform add android
ionic run android
Conclusion
We have seen how to use a Cordova plugin to create and show the native ActionSheet UI component in our Ionic 5/Angular app. We can also use Ionic's own implementation of the Action Sheet, check this tutorial:
Ionic 5/ ActionSheet Component Controller
-
Date: