NiklasMerz / cordova-plugin-fingerprint-aio

Cordova Plugin for fingerprint sensors (and FaceID) with Android and iOS support
https://www.npmjs.com/package/cordova-plugin-fingerprint-aio
MIT License
323 stars 188 forks source link

"Missing required parameters" when trying to show the Fingerprint dialog on Android #213

Closed engmsaleh closed 4 years ago

engmsaleh commented 4 years ago

Bug report

I'm getting Missing required parameters when I'm trying to show the Fingerprint dialog on Android

Description

Here is the snippet of the code that I'm using

this.fingerprintAuth.isAvailable().then(result => {
      if (result === "finger" || result === "face") {
        //Fingerprint or Face Auth is available
        this.fingerprintAuth
          .show({
            title:"title",
            disableBackup: true //Only for Android(optional)
          })
          .then((result: any) => {
            console.log(result);
            if (result == "Success") {
              //Fingerprint/Face was successfully verified
              console.log("Success");
            } else {
              //Fingerprint/Face was not successfully verified
              // this.utility.presentAlert(result);
              console.log("error");
            }
          })
          .catch((error: any) => {
            console.log(error);
            //Fingerprint/Face was not successfully verified
            // this.utility.presentAlert(error);
          });
      } else {
        //Fingerprint or Face Auth is not available
        // this.utility.presentAlert(
        //   "Fingerprint/Face Auth is not available   on this device!"
        // );
      }
    });

Environment

Environment: OS: darwin Node: v10.16.3 npm: 6.13.3

Plugins: cordova-plugin-add-swift-support cordova-plugin-device cordova-plugin-dialogs cordova-plugin-fingerprint-aio cordova-plugin-globalization cordova-plugin-inappbrowser cordova-plugin-ionic-keyboard cordova-plugin-ionic-webview cordova-plugin-mfp cordova-plugin-nativestorage cordova-plugin-okhttp cordova-plugin-splashscreen cordova-plugin-statusbar cordova-plugin-whitelist cordova-sqlite-storage

Android platform: ERROR: android: Command failed with exit code ENOENT

iOS platform: Xcode 11.3 Build version 11C29

config.xml <<EOF <?xml version='1.0' encoding='utf-8'?>

Taaleem Taaleem app Ionic Framework Team 2405394652 0 336151202 0 0 0 0 0 8.0.0.00-20190910-142437 en /adapters/MobileAPIProxy

EOF

package.json <<EOF { "name": "moe", "version": "0.0.1", "author": "Ionic Framework", "homepage": "https://ionicframework.com/", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/common": "~8.1.2", "@angular/compiler": "~8.1.2", "@angular/core": "~8.1.2", "@angular/forms": "~8.1.2", "@angular/platform-browser": "~8.1.2", "@angular/platform-browser-dynamic": "~8.1.2", "@angular/router": "~8.1.2", "@ionic-native/core": "^5.0.0", "@ionic-native/fingerprint-aio": "^5.18.0", "@ionic-native/in-app-browser": "^5.15.1", "@ionic-native/splash-screen": "^5.0.0", "@ionic-native/status-bar": "^5.0.0", "@ionic/angular": "^4.7.1", "@ionic/storage": "^2.2.0", "@ngx-translate/core": "^11.0.1", "@ngx-translate/http-loader": "^4.0.0", "cordova-android": "^8.1.0", "cordova-browser": "6.0.0", "cordova-ios": "^5.1.0", "cordova-plugin-device": "2.0.2", "cordova-plugin-dialogs": "^2.0.2", "cordova-plugin-fingerprint-aio": "git+https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio.git", "cordova-plugin-globalization": "^1.11.0", "cordova-plugin-inappbrowser": "^3.1.0", "cordova-plugin-ionic-keyboard": "^2.0.5", "cordova-plugin-ionic-webview": "^4.0.0", "cordova-plugin-mfp": "^8.0.2019091217", "cordova-plugin-okhttp": "^2.0.0", "cordova-plugin-splashscreen": "5.0.2", "cordova-plugin-statusbar": "2.4.2", "cordova-plugin-whitelist": "1.3.3", "core-js": "^2.5.4", "ibm-mfp-web-sdk": "^8.0.2019070909", "ionic2-calendar": "^0.5.6", "jsencrypt": "^3.0.0-rc.1", "ng-circle-progress": "^1.5.1", "rxjs": "~6.5.1", "scalts": "^1.1.0", "scalts-array": "^0.7.0", "sw-toolbox": "^3.6.0", "ts-json-definition": "0.0.3", "ts-md5": "^1.2.7", "ts-serialize": "^1.3.2", "tslib": "^1.9.0", "zone.js": "~0.9.1" }, "devDependencies": { "@angular-devkit/architect": "~0.801.2", "@angular-devkit/build-angular": "~0.801.2", "@angular-devkit/core": "~8.1.2", "@angular-devkit/schematics": "~8.1.2", "@angular/cli": "~8.1.2", "@angular/compiler": "~8.1.2", "@angular/compiler-cli": "~8.1.2", "@angular/language-service": "~8.1.2", "@ionic/angular-toolkit": "~2.0.0", "@ionic/lab": "2.0.13", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "^5.0.0", "cordova-plugin-device": "^2.0.3", "cordova-plugin-ionic-keyboard": "^2.2.0", "cordova-plugin-ionic-webview": "^4.1.3", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-whitelist": "^1.3.3", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.15.0", "typescript": "~3.4.3" }, "description": "An Ionic project", "cordova": { "plugins": { "cordova-plugin-whitelist": {}, "cordova-plugin-statusbar": {}, "cordova-plugin-device": {}, "cordova-plugin-splashscreen": {}, "cordova-plugin-ionic-webview": { "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+" }, "cordova-plugin-ionic-keyboard": {}, "cordova-plugin-inappbrowser": {}, "cordova-plugin-mfp": {}, "cordova-sqlite-storage": {}, "cordova-plugin-fingerprint-aio": {} }, "platforms": [ "browser", "ios", "android" ] } }



* ```cordova platform ls```
Android

### Logs

<details>
  <pre>I have tried in several devices with same error always</pre>
</details>
NiklasMerz commented 4 years ago

Did you try setting the paramter fallbackButtonTitle to show

Please check https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio/issues/212

xiaohuoni commented 4 years ago

@NiklasMerz Hello, I have the same problem. This is how I use it

Fingerprint.show({
            title:'快速登录',
            fallbackButtonTitle:'确定',
            disableBackup:false,
            cancelButtonTitle:'取消'
          }, successCallback, errorCallback);
xiaohuoni commented 4 years ago

I tried to add two parameters. I wrote the values at will. What should they be set correctly

Fingerprint.show({
            title:'快速登录',subtitle:'快速登录验证流程',description:'',
            fallbackButtonTitle:'确定',
            disableBackup:false,
            cancelButtonTitle:'取消',
            clientId:'123',
            clientSecret:'123212132'
          }
engmsaleh commented 4 years ago

@NiklasMerz I don't think this is the problem as I see that all the show options are optional and I have already tried with all of them set and still getting the same error

engmsaleh commented 4 years ago

@xiaohuoni I have tried to do that, but both clientId & clientSecret are removed from FAIO Options now and it will give an error when I add them

NiklasMerz commented 4 years ago

@NiklasMerz I don't think this is the problem as I see that all the show options are optional and I have already tried with all of them set and still getting the same error

fallbackButtonTitle should be mandatory. We may need to fix the Ionic native typing and docs. As always with plugin updates/changes try deleting the platforms and addding the again.

@xiaohuoni I have tried to do that, but both clientId & clientSecret are removed from FAIO Options now and it will give an error when I add them

Yes those are needed for the old version 2.x or below.

engmsaleh commented 4 years ago

@NiklasMerz Adding fallbackButtonTitle solved the issue, thanks a lot

xiaohuoni commented 4 years ago

Yes those are needed for the old version 2.x or below.

@NiklasMerz Why do I use yarn to install is 1.6.0 version?

engmsaleh commented 4 years ago

@xiaohuoni I don't know why it happens when I use it on ionic, but I solved it by installing the plugin first, then the ionic-native wrapper If I go the other way around I will get version 1.6