10X Sale
kh logo
All Courses
  1. Tutorials
  2. Mobile App Development

Ionic Native

Updated on Sep 23, 2025
 
10,985 Views

This section introduces you to how you can access native components from your mobile device, like camera, flashlight, etc.

Ionic is built on Apache Cordova, which allows your mobile app to access native features. We have seen in previous sections the components that are needed to build an advanced mobile app from scratch. We began with the ABCs of Typescript and Angular and went on to the more advanced UI elements in Ionic.

Having come this far, we still have not seen how to use the camera, phone storage, and other features. This section will deal with that. We will look at how we can use Cordova native plugins to access native features on the mobile phone.

A point to be noted here is that you will need to have Android studio working and you should have configured virtual devices to build and test native features. Compiling might take longer than an “Ionic serve”.

Click on the handles / search icon on the top right toolbar in Android studio

Image

Type AVD and click on AVD Manager

Image

Launch the AVD manager

Image

You can now create a virtual device by clicking on “Create New Virtual Device”.

Image

Click on a device and complete the wizard.

Launch the virtual device and once it opens up, you are all set to develop and test Ionic native components.

Image

You can run:

Image

And the app will launch on the emulator

Image

Example 1: In appbrowser

The as a simple example of a native component, we’ll look at launching a webpage in a native browser within the app. This uses the inAppBrowser Cordova plugin

You first have to install the plugin

Image

Image

You then import it into the ng module as a “provider”

Image

Image

You are now all set to use it in your app. You do it first by importing inAppBrowser and injecting it into the constructor

Image

Image

Launching the browser is as simple as it is below.

Image

In the html

Image

Clicking the button launches the browser

Image

In summary, we install the plugin using npm, add it as a provider in the ngModule, import it into the component and inject it into the service and call the method to launch the browser. All native plugins work in a similar fashion.

Flashlight

This is a simple example of native control over the mobile phone’s hardware from Ionic. You can use the Cordova plugin to turn the flashlight on and off.

As we have already seen, we install the plugin, add it as a provider in a ngModule, inject it into a component and call the method that the plugin provides

In the ngModule

Image

Image

In the component,

Image

Image

Image

In the html,

Image

You will not be able to test the flashlight on the emulator and you will have to build an installable and run it in the device. For this, you can connect your Android device via USB and make sure you enable it for USB debugging by.

On the device, go to Settings > About <device>.
Tap the Build number seven times to make Settings > Developer options available.

Then enable the USB Debugging option.

Once you are done, you can then run

Image

And your app will run on your phone. Click on the button described above and you can see the flashlight turn on and off each time you click.

You will notice a whole Android app being built. We will cover the build process in subsequent chapters. The purpose of this chapter is to introduce native plugins.

Camera

Among the most commonly used native features is the usage of the camera and handling images from the gallery. This is done using the native camera plugin

Installation

Image

Image

In ngModule

Image

Image

In the component

Image

Image

Image

You first setup camera option on quality which impacts the quality of the images. The common options are 10, 20 and 100. The size of the image is also set here. The method getPicture launches the camera. Once the picture is clicked it returns a base64 encoded string as the image.

In this case, the method above is called from the “Take Picture” button. That loads the camera.

Image

The camera is launched

Image

On clicking the image the base64 string is returned and stored in the variable sImg which can be displayed as below:

Image

Open picture from Gallery

You might not always want to load the picture from the camera. It might be in your gallery. You do that by using the camera plugin with a variation as below, with the sourcetype as this.camera.PictureSourceType. PHOTOLIBRARY

Image

CallNumber

This is used to directly launch the dialer from the app

First, install the plugin

Image

Image

Import and add as a provider in the ngModule

Image

Image

Inject into the component

Image

Image

Write the method

Image

Call from HTML

Image

Accessing Phone Contacts

This can be used to access phone contacts

Install

Image

Image

Provider in ngModule

Image

Image

Inject into component

Image

Image

Method to pick the contact

Image

Image

On clicking the button, the phone contacts will open up. On selecting one, the selected contact will be displayed.

Image

Clipboard

You can access the phone clipboard to copy, paste and clear.

Installation

Image

Image

Include as provider in ngModule

Image

Image

Inject into component

Image

Image

Write the method

Image

Image

Screenshot

This is used to take a screenshot of the current screen

Installation

Image

Image

Provider in ngModule

Image

Image

Inject in component and create Method

Image

Image

Image

Create button and display in html

Image

Image

Network

This can be used to check network status and carry out offline activity.

Installation

Image

Image

Add as a provider to ngModule

Image

Image

Inject into component

Image

Image

Write the method to check if network is on

Image

We will look at this in detail when we look at reactive programming

Native Audio

This is used to play audio files.

Installation

Image

Image

Add as a provider in ngModule

Image

Image

Inject as a service in the component

Image

Image

Include the audio file in assets

Image

Use a constant to let the component know the file location

Image

Load the file in the component’s constructor

Image

Now you can start and stop playing the file

Image

Barcode Scanner

Barcodes and QR codes are a simple way of sharing data. We will now store course information in a QR code and scan it using the Ionic app,

You can create a QR code at

https://www.qr-code-generator.com/

We put in the JSON data in the QR code

{"course":"Java", ↵  "faculty":"Josh"}

And it up as an image on your laptop/ computer

Image

Installation

Image

Image

Import as a service

Image

Image

Component

Image

Image

Image

HTML

Image

Image

Image

File Chooser

This allows you to access the phone file system and returns a URI

Image

Image

Include as a service in ngModule

Image

Image

In the controller

Image

Image

Image

Image

You use the FilePath to convert the URI to a path that can be opened and the FileOpener to Open the file.

The plugins for filePath and fileOpener are installed,

Image

Image

Image

Image

Image

Import into the Component

Image

Image

Image

This brings us to the end of this chapter. We have added different native plugins and accessed native features within the mobile. The Ionic documentation lists several paid and free plugins. Most of them are implemented in a similar fashion. It is highly recommended that you try them out.

+91

By Signing up, you agree to ourTerms & Conditionsand ourPrivacy and Policy

Get your free handbook for CSM!!
Recommended Courses