Loading episodes…
0:00 0:00

Ionic 5/Angular Action Sheet Example with Cordova and Ionic Native 5

00:00
BACK TO HOME

Ionic 5/Angular Action Sheet Example with Cordova and Ionic Native 5

10xTeam May 03, 2020 2 min read

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


Join the 10xdev Community

Subscribe and get 8+ free PDFs that contain detailed roadmaps with recommended learning periods for each programming language or field, along with links to free resources such as books, YouTube tutorials, and courses with certificates.

Audio Interrupted

We lost the audio stream. Retry with shorter sentences?