2016-12-24 4 views
1

Я немного не знаком с cordova & ионным, и я создаю простую аутентификацию по отпечаткам пальцев.ионный отпечаток пальца и андроид, дающий недостающие требуемые параметры error

Я использую плагин из ионного источника на ионном 1. У него будет только кнопка, которая откроет диалоговое окно проверки подлинности отпечатка пальца. но не на любом устройстве я бегу это будет ошибка обратного вызова функции и дает сообщение об ошибке недостающие необходимые параметры

мой index.html:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 
    <link rel="manifest" href="manifest.json"> 
    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="www/lib/ngCordova/dist/ng-cordova.js"></script> 
    <script src="lib/ionic-native/ionic.native.js"></script> 
    <script src="cordova.js"></script> 
    <script src="js/app.js"></script> 
    </head> 
    <body ng-app="starter"> 
    <ion-pane> 
     <ion-header-bar class="bar-stable"> 
     <h1 class="title">Ionic Blank Starter</h1> 
     </ion-header-bar> 
     <ion-content ng-controller="ExampleController"> 
      <button class="button" ng-click="authenticate()">Authenticate</button> 
     </ion-content> 
    </ion-pane> 
    </body> 
</html> 

Мои app.js:

angular.module('starter', ['ionic', 'ionic.native']) 
.controller("ExampleController", function($scope, $cordovaAndroidFingerprintAuth) { 
    $scope.authenticate = function(){ 
    $cordovaAndroidFingerprintAuth.isAvailable(function(result) { 
     alert('finger print scanner is available'); 
    }, 
    function(message) { 
     alert("Cannot detect fingerprint device : "+ message); 
    }) 
} 
}); 

Заранее спасибо.

ответ

0

ClientId свойство отсутствует, как это требуется, чтобы установить в соответствии с этим машинным кодом перед PluginResult объект возвращается:

 JSONObject resultJson = new JSONObject(); 

     // this checks clientId and throws an error if it was not set 
     if (!arg_object.has("clientId")) { 
      mPluginResult = new PluginResult(PluginResult.Status.ERROR); 
      mCallbackContext.error("Missing required parameters."); 
      mCallbackContext.sendPluginResult(mPluginResult); 
      return true; 
     } 

// некоторый код

 switch (mAction) { 
      // this code has not been reached 
      case AVAILABILITY: 
       resultJson.put("isAvailable",      isFingerprintAuthAvailable()); 
       resultJson.put("isHardwareDetected", mFingerPrintManager.isHardwareDetected()); 
       resultJson.put("hasEnrolledFingerprints", mFingerPrintManager.hasEnrolledFingerprints()); 
       mPluginResult = new PluginResult(PluginResult.Status.OK); 
       mCallbackContext.success(resultJson); 
       mCallbackContext.sendPluginResult(mPluginResult); 
       return true; 
      case ENCRYPT: 

Я получил источник от here.

Надеюсь, что это поможет и веселого Рождества!

+0

Спасибо @Blauharley Я проверил документацию api и обнаружил, что функция isAvailable не будет принимать объект конфигурации, и, как я вижу, код, упомянутый вами в git, был другим, а недавний фиксатор сказал, что это ошибка с этой функцией, и это был исправлен. теперь я могу использовать это правильно. – Anand

+0

Добро пожаловать! Да, это довольно легко исправить, но ваш вопрос не был поставлен таким образом, поэтому я не вставлял это в свой ответ, извините ... Тем не менее был счастливый конец! – Blauharley

 Смежные вопросы

  • Нет связанных вопросов^_^