签约流程,指纹登录
diff --git a/platforms/ios/dlapp.xcodeproj/project.pbxproj b/platforms/ios/dlapp.xcodeproj/project.pbxproj
index 92c3c27..7e856ef 100644
--- a/platforms/ios/dlapp.xcodeproj/project.pbxproj
+++ b/platforms/ios/dlapp.xcodeproj/project.pbxproj
@@ -5,7 +5,6 @@
};
objectVersion = 46;
objects = {
-
/* Begin PBXBuildFile section */
0207DA581B56EA530066E2B4 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0207DA571B56EA530066E2B4 /* Images.xcassets */; };
04347BD0ABAC4EE0B4CDDDB6 /* jcore-ios-2.1.1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 444DBF371D8346D7BC7EE35D /* jcore-ios-2.1.1.a */; };
@@ -48,7 +47,6 @@
A42AE846FF7B482FB889AAEB /* QRScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8478FFD487C4004A1CEFCA8 /* QRScanner.swift */; };
A50EB04ADB24A5CBB680802F /* libPods-dlapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D992375F52889311A88544EF /* libPods-dlapp.a */; };
A54A9FED843144C887EA4286 /* AppDelegate+JPush.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E044FC8377488C886C818B /* AppDelegate+JPush.m */; };
- B69FF513D1EE4772AFF6050B /* Fingerprint.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2099240B64744E08C91C285 /* Fingerprint.swift */; };
B8EFB66D03A44372A240B05B /* CDVCamera.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B448E71F8941268B78692C /* CDVCamera.m */; };
BC39BA77AF0D4F94BC27666A /* CDVDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = A50DE9801E5E4302A78D569C /* CDVDevice.m */; };
BC998F935D174204820F4015 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 22AE2683802B4CB1BAF69ABF /* AFURLSessionManager.m */; };
@@ -66,6 +64,7 @@
F68EA21E51A3463A8FE2EE92 /* CDVWKWebViewUIDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B73EA28E46846FF84E6AF02 /* CDVWKWebViewUIDelegate.m */; };
F939AD8D22BB769B006B371B /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F939AD8C22BB769B006B371B /* libsqlite3.0.tbd */; };
FDE92C386167415E8040F8AB /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = FDEE8379D7A34C55A616F700 /* AFURLResponseSerialization.m */; };
+ 81B8C05354704A02AE1560A0 /* Fingerprint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BDB5993A0D495C9E97E995 /* Fingerprint.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -175,7 +174,6 @@
B3CE13EED96B44C0B06B1B2C /* TouchID.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = TouchID.m; path = "cordova-plugin-touch-id/TouchID.m"; sourceTree = "<group>"; };
B3F9D30FB27A4B26A445BA84 /* CDVExif.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVExif.h; path = "cordova-plugin-camera/CDVExif.h"; sourceTree = "<group>"; };
BA6C5B1A6A6A488790CA41EB /* AFSecurityPolicy.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = "cordova-plugin-advanced-http/AFSecurityPolicy.m"; sourceTree = "<group>"; };
- C2099240B64744E08C91C285 /* Fingerprint.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = Fingerprint.swift; path = "cordova-plugin-fingerprint-aio/Fingerprint.swift"; sourceTree = "<group>"; };
C44E29C3B190445C98BBAB84 /* CoreFoundation.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
C8478FFD487C4004A1CEFCA8 /* QRScanner.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = QRScanner.swift; path = "cordova-plugin-qrscanner/QRScanner.swift"; sourceTree = "<group>"; };
CBD6EA74C612474DA862E146 /* libresolv.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
@@ -196,9 +194,10 @@
F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = dlapp/config.xml; sourceTree = "<group>"; };
F939AD8C22BB769B006B371B /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; };
FC8EA7F3637547AD8BC62127 /* JPushDefine.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = JPushDefine.h; path = "jpush-phonegap-plugin/JPushDefine.h"; sourceTree = "<group>"; };
- FCC7E279D80D4FB9BCF2530A /* Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "Bridging-Header.h"; path = "cordova-plugin-fingerprint-aio/Bridging-Header.h"; sourceTree = "<group>"; };
FDEE8379D7A34C55A616F700 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = "cordova-plugin-advanced-http/AFURLResponseSerialization.m"; sourceTree = "<group>"; };
FE0B455916A4481681D59FE0 /* WebKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
+ 39BDB5993A0D495C9E97E995 /* Fingerprint.swift */ = {isa = PBXFileReference; name = "Fingerprint.swift"; path = "cordova-plugin-fingerprint-aio/Fingerprint.swift"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.swift; explicitFileType = undefined; includeInIndex = 0; };
+ 705239B1B7D9402DA8A9FDA7 /* Bridging-Header.h */ = {isa = PBXFileReference; name = "Bridging-Header.h"; path = "cordova-plugin-fingerprint-aio/Bridging-Header.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -373,8 +372,6 @@
3BE5364CD5E74AFDAB853364 /* AFURLResponseSerialization.h */,
7E931FBE72E74C4887498E5F /* AFURLSessionManager.h */,
D4DBE4512BAD4694B7EB5217 /* SDNetworkActivityIndicator.h */,
- C2099240B64744E08C91C285 /* Fingerprint.swift */,
- FCC7E279D80D4FB9BCF2530A /* Bridging-Header.h */,
1ABBE12B040548F8909BFC7B /* CDVStatusBar.m */,
8BFF0D502E2241F0A89DF67F /* CDVStatusBar.h */,
B3CE13EED96B44C0B06B1B2C /* TouchID.m */,
@@ -410,6 +407,8 @@
7DC7711D3C76485B9E422E3A /* CDVWKProcessPoolFactory.h */,
1E4D2B8A1F474D9883C50B86 /* Brightness.m */,
817A61F7D48245FA9567B115 /* Brightness.h */,
+ 39BDB5993A0D495C9E97E995 /* Fingerprint.swift */,
+ 705239B1B7D9402DA8A9FDA7 /* Bridging-Header.h */,
);
name = Plugins;
path = dlapp/Plugins;
@@ -585,7 +584,6 @@
FDE92C386167415E8040F8AB /* AFURLResponseSerialization.m in Sources */,
BC998F935D174204820F4015 /* AFURLSessionManager.m in Sources */,
D404D18DD0114DA787E0BB43 /* SDNetworkActivityIndicator.m in Sources */,
- B69FF513D1EE4772AFF6050B /* Fingerprint.swift in Sources */,
CAE5A91F948A472F9D872EC8 /* CDVStatusBar.m in Sources */,
D834895F80744E0F96D59047 /* TouchID.m in Sources */,
C61263FC7FE642E9B25A81E5 /* DisableStatusbar.m in Sources */,
@@ -603,6 +601,7 @@
F68EA21E51A3463A8FE2EE92 /* CDVWKWebViewUIDelegate.m in Sources */,
1F969D21D7EF4CF1A547A1DF /* CDVWKProcessPoolFactory.m in Sources */,
C0A6FD40F47B434496535606 /* Brightness.m in Sources */,
+ 81B8C05354704A02AE1560A0 /* Fingerprint.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
index 93f7d4b..1711166 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
index 338c489..8003676 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
index 26304e4..2961408 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
index 3179c09..458cfdc 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
index 6807263..2efdc6a 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
index 3f765b9..53a7b33 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
index 338c489..8003676 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
index 5159c6d..63f3b12 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
index a5394ab..97b8089 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
index a5394ab..97b8089 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
index 28db6a7..c47ba12 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
index ee96b32..8ede09f 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
index f4e7346..923ccab 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
index 86c995d..cfb60e6 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
index eb0ca49..38db89b 100644
--- a/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@1x.png b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@1x.png
index cfd1080..34df640 100644
--- a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@1x.png
+++ b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@1x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@2x.png b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@2x.png
index eb0ca49..38db89b 100644
--- a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@2x.png
+++ b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@2x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@3x.png b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@3x.png
index d6e68b2..317adb1 100644
--- a/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@3x.png
+++ b/platforms/ios/dlapp/Images.xcassets/iTunesArtwork@3x.png
Binary files differ
diff --git a/platforms/ios/dlapp/Plugins/cordova-plugin-fingerprint-aio/Fingerprint.swift b/platforms/ios/dlapp/Plugins/cordova-plugin-fingerprint-aio/Fingerprint.swift
index 547aeb2..1f01be4 100644
--- a/platforms/ios/dlapp/Plugins/cordova-plugin-fingerprint-aio/Fingerprint.swift
+++ b/platforms/ios/dlapp/Plugins/cordova-plugin-fingerprint-aio/Fingerprint.swift
@@ -1,23 +1,47 @@
import Foundation
import LocalAuthentication
+
@objc(Fingerprint) class Fingerprint : CDVPlugin {
+ enum PluginError:Int {
+ case BIOMETRIC_UNKNOWN_ERROR = -100
+ case BIOMETRIC_UNAVAILABLE = -101
+ case BIOMETRIC_AUTHENTICATION_FAILED = -102
+ case BIOMETRIC_PERMISSION_NOT_GRANTED = -105
+ case BIOMETRIC_NOT_ENROLLED = -106
+ case BIOMETRIC_DISMISSED = -108
+ case BIOMETRIC_SCREEN_GUARD_UNSECURED = -110
+ case BIOMETRIC_LOCKED_OUT = -111
+ }
+
+ struct ErrorCodes {
+ var code: Int
+ }
+
+
@objc(isAvailable:)
func isAvailable(_ command: CDVInvokedUrlCommand){
let authenticationContext = LAContext();
var biometryType = "finger";
+ var errorResponse: [AnyHashable: Any] = [
+ "code": 0,
+ "message": "Not Available"
+ ];
var error:NSError?;
let policy:LAPolicy = .deviceOwnerAuthenticationWithBiometrics;
-
+ var pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: "Not available");
let available = authenticationContext.canEvaluatePolicy(policy, error: &error);
+ var results: [String : Any]
+
if(error != nil){
biometryType = "none";
+ errorResponse["code"] = error?.code;
+ errorResponse["message"] = error?.localizedDescription;
}
- var pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: "Not available");
- if available == true {
+ if (available == true) {
if #available(iOS 11.0, *) {
switch(authenticationContext.biometryType) {
case .none:
@@ -30,6 +54,22 @@
}
pluginResult = CDVPluginResult(status: CDVCommandStatus_OK, messageAs: biometryType);
+ }else{
+ var code: Int;
+ switch(error!._code) {
+ case Int(kLAErrorBiometryNotAvailable):
+ code = PluginError.BIOMETRIC_UNAVAILABLE.rawValue;
+ break;
+ case Int(kLAErrorBiometryNotEnrolled):
+ code = PluginError.BIOMETRIC_NOT_ENROLLED.rawValue;
+ break;
+
+ default:
+ code = PluginError.BIOMETRIC_UNKNOWN_ERROR.rawValue;
+ break;
+ }
+ results = ["code": code, "message": error!.localizedDescription];
+ pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: results);
}
commandDelegate.send(pluginResult, callbackId:command.callbackId);
@@ -39,7 +79,10 @@
@objc(authenticate:)
func authenticate(_ command: CDVInvokedUrlCommand){
let authenticationContext = LAContext();
- var pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: "Something went wrong");
+ var errorResponse: [AnyHashable: Any] = [
+ "message": "Something went wrong"
+ ];
+ var pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: errorResponse);
var reason = "Authentication";
var policy:LAPolicy = .deviceOwnerAuthentication;
let data = command.arguments[0] as AnyObject?;
@@ -49,17 +92,17 @@
authenticationContext.localizedFallbackTitle = "";
policy = .deviceOwnerAuthenticationWithBiometrics;
} else {
- if let localizedFallbackTitle = data?["localizedFallbackTitle"] as! String? {
- authenticationContext.localizedFallbackTitle = localizedFallbackTitle;
+ if let fallbackButtonTitle = data?["fallbackButtonTitle"] as! String? {
+ authenticationContext.localizedFallbackTitle = fallbackButtonTitle;
+ }else{
+ authenticationContext.localizedFallbackTitle = "Use Pin";
}
}
}
// Localized reason
- if let localizedReason = data?["localizedReason"] as! String? {
- reason = localizedReason;
- }else if let clientId = data?["clientId"] as! String? {
- reason = clientId;
+ if let description = data?["description"] as! String? {
+ reason = description;
}
authenticationContext.evaluatePolicy(
@@ -69,17 +112,32 @@
if( success ) {
pluginResult = CDVPluginResult(status: CDVCommandStatus_OK, messageAs: "Success");
}else {
- // Check if there is an error
- if error != nil {
- pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: "Error: \(String(describing: error?.localizedDescription))")
+ if (error != nil) {
+
+ var errorCodes = [Int: ErrorCodes]()
+ var errorResult: [String : Any] = ["code": PluginError.BIOMETRIC_UNKNOWN_ERROR.rawValue, "message": error?.localizedDescription ?? ""];
+
+ errorCodes[1] = ErrorCodes(code: PluginError.BIOMETRIC_AUTHENTICATION_FAILED.rawValue)
+ errorCodes[2] = ErrorCodes(code: PluginError.BIOMETRIC_DISMISSED.rawValue)
+ errorCodes[5] = ErrorCodes(code: PluginError.BIOMETRIC_SCREEN_GUARD_UNSECURED.rawValue)
+ errorCodes[6] = ErrorCodes(code: PluginError.BIOMETRIC_UNAVAILABLE.rawValue)
+ errorCodes[7] = ErrorCodes(code: PluginError.BIOMETRIC_NOT_ENROLLED.rawValue)
+ errorCodes[8] = ErrorCodes(code: PluginError.BIOMETRIC_LOCKED_OUT.rawValue)
+
+ let errorCode = abs(error!._code)
+ if let e = errorCodes[errorCode] {
+ errorResult = ["code": e.code, "message": error!.localizedDescription];
+ }
+
+ pluginResult = CDVPluginResult(status: CDVCommandStatus_ERROR, messageAs: errorResult);
}
}
self.commandDelegate.send(pluginResult, callbackId:command.callbackId);
- });
+ }
+ );
}
override func pluginInitialize() {
super.pluginInitialize()
}
-}
-
+}
\ No newline at end of file
diff --git a/platforms/ios/dlapp/config.xml b/platforms/ios/dlapp/config.xml
index 3ae113a..b06fe28 100755
--- a/platforms/ios/dlapp/config.xml
+++ b/platforms/ios/dlapp/config.xml
@@ -26,9 +26,6 @@
<feature name="CordovaHttpPlugin">
<param name="ios-package" value="CordovaHttpPlugin" />
</feature>
- <feature name="Fingerprint">
- <param name="ios-package" value="Fingerprint" />
- </feature>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" />
<param name="onload" value="true" />
@@ -67,6 +64,9 @@
<feature name="Brightness">
<param name="ios-package" value="Brightness" />
</feature>
+ <feature name="Fingerprint">
+ <param name="ios-package" value="Fingerprint" />
+ </feature>
<name short="大理市民卡">dlapp</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
diff --git a/platforms/ios/ios.json b/platforms/ios/ios.json
index 7b9d86f..8247df1 100644
--- a/platforms/ios/ios.json
+++ b/platforms/ios/ios.json
@@ -17,10 +17,6 @@
"count": 1
},
{
- "xml": "<feature name=\"Fingerprint\"><param name=\"ios-package\" value=\"Fingerprint\" /></feature>",
- "count": 1
- },
- {
"xml": "<feature name=\"StatusBar\"><param name=\"ios-package\" value=\"CDVStatusBar\" /><param name=\"onload\" value=\"true\" /></feature>",
"count": 1
},
@@ -83,6 +79,10 @@
{
"xml": "<feature name=\"Brightness\"><param name=\"ios-package\" value=\"Brightness\" /></feature>",
"count": 1
+ },
+ {
+ "xml": "<feature name=\"Fingerprint\"><param name=\"ios-package\" value=\"Fingerprint\" /></feature>",
+ "count": 1
}
]
}
@@ -91,12 +91,8 @@
"parents": {
"NSFaceIDUsageDescription": [
{
- "xml": "<string>认证中...</string>",
- "count": 1
- },
- {
"xml": "<string> </string>",
- "count": 1
+ "count": 2
}
],
"NSCameraUsageDescription": [
@@ -165,10 +161,6 @@
"cordova-plugin-advanced-http": {
"PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)"
},
- "cordova-plugin-fingerprint-aio": {
- "FACEID_USAGE_DESCRIPTION": "认证中...",
- "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)"
- },
"cordova-plugin-statusbar": {
"PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)"
},
@@ -213,6 +205,10 @@
},
"cordova-plugin-brightness": {
"PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)"
+ },
+ "cordova-plugin-fingerprint-aio": {
+ "FACEID_USAGE_DESCRIPTION": " ",
+ "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)"
}
},
"dependent_plugins": {},
@@ -449,14 +445,6 @@
]
},
{
- "id": "cordova-plugin-fingerprint-aio.Fingerprint",
- "file": "plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js",
- "pluginId": "cordova-plugin-fingerprint-aio",
- "clobbers": [
- "Fingerprint"
- ]
- },
- {
"id": "cordova-plugin-statusbar.statusbar",
"file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
"pluginId": "cordova-plugin-statusbar",
@@ -576,13 +564,20 @@
"clobbers": [
"cordova.plugins.brightness"
]
+ },
+ {
+ "id": "cordova-plugin-fingerprint-aio.Fingerprint",
+ "file": "plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js",
+ "pluginId": "cordova-plugin-fingerprint-aio",
+ "clobbers": [
+ "Fingerprint"
+ ]
}
],
"plugin_metadata": {
"cordova-plugin-add-swift-support": "2.0.2",
"cordova-plugin-file": "6.0.1",
"cordova-plugin-advanced-http": "2.1.1",
- "cordova-plugin-fingerprint-aio": "1.7.0",
"cordova-plugin-statusbar": "2.4.2",
"cordova-plugin-touch-id": "3.3.1",
"cordova-plugin-whitelist": "1.3.3",
@@ -596,6 +591,7 @@
"jpush-phonegap-plugin": "3.7.2",
"cordova-plugin-app-version": "0.1.9",
"cordova-plugin-wkwebview-engine": "1.2.1",
- "cordova-plugin-brightness": "0.1.5"
+ "cordova-plugin-brightness": "0.1.5",
+ "cordova-plugin-fingerprint-aio": "3.0.1"
}
}
diff --git a/platforms/ios/platform_www/cordova_plugins.js b/platforms/ios/platform_www/cordova_plugins.js
index eca1f34..ed613ac 100644
--- a/platforms/ios/platform_www/cordova_plugins.js
+++ b/platforms/ios/platform_www/cordova_plugins.js
@@ -232,14 +232,6 @@
]
},
{
- "id": "cordova-plugin-fingerprint-aio.Fingerprint",
- "file": "plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js",
- "pluginId": "cordova-plugin-fingerprint-aio",
- "clobbers": [
- "Fingerprint"
- ]
- },
- {
"id": "cordova-plugin-statusbar.statusbar",
"file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
"pluginId": "cordova-plugin-statusbar",
@@ -359,13 +351,20 @@
"clobbers": [
"cordova.plugins.brightness"
]
+ },
+ {
+ "id": "cordova-plugin-fingerprint-aio.Fingerprint",
+ "file": "plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js",
+ "pluginId": "cordova-plugin-fingerprint-aio",
+ "clobbers": [
+ "Fingerprint"
+ ]
}
];
module.exports.metadata = {
"cordova-plugin-add-swift-support": "2.0.2",
"cordova-plugin-file": "6.0.1",
"cordova-plugin-advanced-http": "2.1.1",
- "cordova-plugin-fingerprint-aio": "1.7.0",
"cordova-plugin-statusbar": "2.4.2",
"cordova-plugin-touch-id": "3.3.1",
"cordova-plugin-whitelist": "1.3.3",
@@ -379,6 +378,7 @@
"jpush-phonegap-plugin": "3.7.2",
"cordova-plugin-app-version": "0.1.9",
"cordova-plugin-wkwebview-engine": "1.2.1",
- "cordova-plugin-brightness": "0.1.5"
+ "cordova-plugin-brightness": "0.1.5",
+ "cordova-plugin-fingerprint-aio": "3.0.1"
};
});
\ No newline at end of file
diff --git a/platforms/ios/platform_www/plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js b/platforms/ios/platform_www/plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js
index 3982139..22ecb6c 100644
--- a/platforms/ios/platform_www/plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js
+++ b/platforms/ios/platform_www/plugins/cordova-plugin-fingerprint-aio/www/Fingerprint.js
@@ -1,8 +1,28 @@
cordova.define("cordova-plugin-fingerprint-aio.Fingerprint", function(require, exports, module) {
/*global cordova */
-function Fingerprint() {
-}
+var Fingerprint = function() {
+};
+
+// Plugin Errors
+Fingerprint.prototype.BIOMETRIC_UNKNOWN_ERROR = -100;
+Fingerprint.prototype.BIOMETRIC_UNAVAILABLE = -101;
+Fingerprint.prototype.BIOMETRIC_AUTHENTICATION_FAILED = -102;
+Fingerprint.prototype.BIOMETRIC_SDK_NOT_SUPPORTED = -103;
+Fingerprint.prototype.BIOMETRIC_HARDWARE_NOT_SUPPORTED = -104;
+Fingerprint.prototype.BIOMETRIC_PERMISSION_NOT_GRANTED = -105;
+Fingerprint.prototype.BIOMETRIC_NOT_ENROLLED = -106;
+Fingerprint.prototype.BIOMETRIC_INTERNAL_PLUGIN_ERROR = -107;
+Fingerprint.prototype.BIOMETRIC_DISMISSED = -108;
+Fingerprint.prototype.BIOMETRIC_PIN_OR_PATTERN_DISMISSED = -109;
+Fingerprint.prototype.BIOMETRIC_SCREEN_GUARD_UNSECURED = -110;
+Fingerprint.prototype.BIOMETRIC_LOCKED_OUT = -111;
+Fingerprint.prototype.BIOMETRIC_LOCKED_OUT_PERMANENT = -112;
+
+// Biometric types
+Fingerprint.prototype.BIOMETRIC_TYPE_FINGERPRINT = "finger";
+Fingerprint.prototype.BIOMETRIC_TYPE_FACE = "face";
+Fingerprint.prototype.BIOMETRIC_TYPE_COMMON = "biometric";
Fingerprint.prototype.show = function (params, successCallback, errorCallback) {
cordova.exec(