استفاده از Touch ID در بیسیک4ای او اس

استفاده از Touch ID در بیسیک4ای او اس

234
۲ سال پیش
0

سلام

همونطور که میتونید touch id یه قابلیتی توی iOS هست که شما میتونید با تاچ قفل گوشی رو باز کنید.

این قابلیت از آیفون های 5S به بعد فعال شده و میتونید توی اپلیکیشن هاتون بجای استفاده از رمز عبور،از تاچ آی دی یا Touch ID استفاده کنید.

منتهی توی گوشی باید چک کنید اول ببینید این قابلیت هست یا نه که اگه بود از تاچ آی دی استفاده کنید و نبود از رمز استفاده کنید.

ابتدا کد زیر رو قسمت Project Attribute اضافه کنید :

#PlistExtra: NSFaceIDUsageDescriptionUses face id to allow authentication

خوب حالا برا اینکه صفحه touch id رو برا کاربر نشون بدید کد زیر رو باید اجرا کنید:

Sub ShowTouchID(SubHandler As Object, ApprovedSub As String, FailSub As String)
Dim noMe As NativeObject=Me
noMe.RunMethod("TouchID:::",Array(SubHandler,ApprovedSub,FailSub))
End Sub

Sub TouchOK
Log("Touch Approved")
End Sub

Sub TouchFail(ErrorDescription As String)
Log(ErrorDescription)
End Sub

#If OBJC
#import 
-(void)TouchID :(NSObject*)handler :(NSString*) subnameok :(NSString*) subnamefail
{
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = @"Used for quick and secure access to the test app";
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL success, NSError *error) {
            if (success) {
                [self.__c CallSubDelayed:self.bi :handler :(subnameok)];
            } else {
                [self.__c CallSubDelayed2:self.bi :handler :(subnamefail) :(error.localizedDescription)];
            }
        }];
} else {
[self.__c CallSubDelayed2:self.bi :handler :(subnamefail) :(authError.localizedDescription)];

}
}
#End If

تابع ShowTouchID رو اگه فراخوانی کنید صفحه مرتبط رو نشون میده و اگه کاربر موفق به ورود بشه رویداد TouchOK اجرا میشه در غیر این صورت TouchFail.

و اما برای بررسی اینکه touch id داره یا نه باید کد زیر رو اجرا کنید ینی تابع CheckTouchID:

Sub CheckTouchID As Boolean
return nome.runMethod("CheckTouchID",Null).AsBoolean
End Sub

#If OBJC

-(BOOL)CheckTouchID
{
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    return YES;
}
else
{
return NO;

}
}

#End If

این تابع مقدار true رو در صورتی که تاچ آی دی داشته باشه برمیگردونه.

موفق باشید...

برچسب ها :
  • بیسیک4ای او اس
  • تاچ آی دی
نظر خود را بنویسید...