In pretty much every mobile application that I’ve ever made, I’ve had a need to use some form of alert dialog. The problem with this is that standard alert dialogs are boring and can actually make your application less attractive. This is where Fancy Alerts come in.
In NativeScript, there is a plugin called Fancy Alerts that can display visually appealing alerts with nice animations. These alerts have smooth color schemes and can make your application that much more important. We’re going to see how to include such alerts in our NativeScript Angular application.
The application we’re going to build won’t do a whole lot. The following animated image explains what we are about to build.
We’re going to have a few buttons, that when pressed, will display various alerts, including alerts with custom images. It is important to note that there is not unity between the iOS and Android platforms with this plugin. Some features are Android-only and some are iOS-only.
For simplicity, we’re going to create a fresh project to work with. From the Command Prompt (Windows) or Terminal (Mac and Linux), execute the following:
tns create FancyAlert --ng
cd FancyAlert
tns platform add ios
tns platform add android
The --ng
flag indicates that we are going to create an Angular with TypeScript project. It is important to note that if you’re not using a Mac, you cannot build for the iOS platform.
Like previously mentioned, this project will use the Fancy Alerts plugin for NativeScript. Install this plugin by executing the following:
tns plugin add nativescript-fancyalert
We’re now ready to start developing our application.
This will be a single page application, so all of our code will end up in files that already exist in the project. Open the project’s app/app.component.ts file and include the following TypeScript code:
import { Component } from "@angular/core";
import { TNSFancyAlert } from "nativescript-fancyalert";
@Component({
selector: "my-app",
templateUrl: "app.component.html",
})
export class AppComponent {
public showSuccess() {
TNSFancyAlert.showSuccess("Success!", "Something finished successfully.", "Dismiss");
}
public showError() {
TNSFancyAlert.showError("Error!", "Oh no, something went wrong.", "Dismiss");
}
public showCustomImage() {
TNSFancyAlert.showAnimationType = TNSFancyAlert.SHOW_ANIMATION_TYPES.SlideInFromBottom;
TNSFancyAlert.hideAnimationType = TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToTop;
TNSFancyAlert.showCustomImage("polyglot_developer.png", "#911E25", "Custom Image", "Use your own images in an alert!", "Dismiss");
}
}
Notice how we’ve imported the TNSFancyAlert
component and we create a method for every time we wish to use it. There are many different types of alerts, all found in the documentation, but we’ve decided to use three different types.
When it comes to the showCustomImage
method, as of right now it only works for iOS. The image to display must exist in the project’s app/App_Resources/iOS directory.
When it comes to the UI, open the project’s app/app.component.html file and include the following HTML markup:
<ActionBar title="{N} Fancy Alerts"></ActionBar>
<StackLayout class="p-20">
<Button text="Success" (tap)="showSuccess()" class="btn btn-primary btn-active"></Button>
<Button text="Error" (tap)="showError()" class="btn btn-primary btn-active"></Button>
<Button text="Custom Image" (tap)="showCustomImage()" class="btn btn-primary btn-active"></Button>
</StackLayout>
The above markup shows an action bar with three buttons. Each of the buttons are bound to the public functions found in the TypeScript file responsible for showing the alert.
Not too complicated right?
You just saw how to add more attractive alerts to your NativeScript iOS and Android application built with Angular. The Fancy Alerts plugin is easy to use and it can really enhance your overall user experience.