I am trying to implement the authentication of my Ionic v4 application through the fingerprint-aio plugin.
However, when trying to use, the error below occurs (I’m running the application on the smartphone (android):
TypeError: Object(…) is not a function
I did the installation according to the official documentation of the Ionic Framework: https://ionicframework.com/docs/native/fingerprint-aio
ionic cordova plugin add cordova-plugin-fingerprint-aio
npm install @ionic-native/fingerprint-aio
Includes the reference in the app.module.ts
import { FingerprintAIO } from ‘@ionic-native/fingerprint-aio/ngx’;
@NgModule({
declarations: [MyApp],
imports: [
BrowserModule,
SharedModule,
AutenticacaoModule,
AdministracaoModule,
ContaCorrenteModule,
CoreModule,
CorporativoModule,
EmprestimoModule,
InicioPageModule,
InvestimentoModule,
LoginPageModule,
TransferenciaModule,
AprovacaoModule,
ComprovanteModule,
HttpModule,
CacheModule.forRoot(),
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()],
bootstrap: [IonicApp],
entryComponents: [MyApp],providers: [
StatusBar,
SplashScreen,
{ provide: ErrorHandler, useClass: IonicErrorHandler },
{ provide: LOCALE_ID, useValue: ‘pt-BR’ },
UtilitarioProvider,
File,
FileTransfer,
FileOpener,
AppVersion,
GerenciarTokenService,
Device,
BarcodeScanner,
SocialSharing,
Screenshot,
InAppBrowser,
FingerprintAIO
]})
export class AppModule {}
home.ts
.
.
.
import { FingerprintAIO } from ‘@ionic-native/fingerprint-aio/ngx’;@IonicPage()
@Component({
selector: ‘home-login’,
templateUrl: ‘home.html’
})export class HomePage {
constructor(
private navCtrl: NavController,
private autenticacaoService: AutenticacaoService,
private toastCtrl: ToastController,
private loadingCtrl: LoadingController,
private usuarioService: UsuarioService,
private warmupSerice: WarmupService,
private menu: MenuController,
private utilService: UtilService,
public platform: Platform,
private appVersion: AppVersion,
private gerenciarToken: GerenciarTokenService,
private iab: InAppBrowser,
private faio: FingerprintAIO
) {if (this.platform.is('cordova')) { this.platform.ready().then(() => { this.appVersion.getVersionNumber().then(ver => (this.versao = ver)); }); } this.menu.swipeEnable(false);
}
biometric() {
try {
this.faio.show({
title: ‘Biometric Authentication’, // (Android Only) | optional | Default: “<APP_NAME> Biometric Sign On”
subtitle: ‘Coolest Plugin ever’, // (Android Only) | optional | Default: null
description: ‘Please authenticate’, // optional | Default: null
fallbackButtonTitle: ‘Use Backup’, // optional | When disableBackup is false defaults to “Use Pin”.
// When disableBackup is true defaults to “Cancel”
disableBackup:true, // optional | default: false
})
.then((result: any) => alert(result))
.catch((error: any) => alert(error));
} catch (e) {
alert('catch ’ + e);
}}
}
I’m using android 9.0.0
ionic cordova platform add android@9.0.0
My Ionic Info
Ionic:
ionic (Ionic CLI) : 4.11.0 (C:\Users\camilaba\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.4Cordova:
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 9.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 14 other plugins)System:
Android SDK Tools : 26.1.1 (C:\Users\camilaba\AppData\Local\Android\Sdk)
NodeJS : v14.16.0 (C:\Program Files\nodejs\node.exe)
npm : 6.14.11
OS : Windows 10