买买买!廉价版新MacBook揭露:辅助指纹解锁

原标题:买买买!廉价版新MacBook暴露:襄助指纹解锁

title: 指纹解锁
date: 2015-9-16 11:39:45
categories: iOS
tags: 指纹解锁

来源| TechWeb


后天黎明先生一点钟就是苹果夏日新品的发布会了,这几天看TechWeb音信的同伙也知道,TechWeb报导了一对一多苹果新魅族的暴光新闻,从形制到配色到出售价格如故到发售时间,可以说发表会没开此前,新闻已经被大家挖掘得一清二白了。

作者:秋儿(lvruifei@foxmail.com

固然新BlackBerry是苹果揭橥会的基本点,不过这场公布会并不仅唯有新诺基亚。现在按照最新音信,苹果知名爆料人郭明錤称,这一次的发表会苹果还会推动新式的低价版的MacBook!看到那些新闻,应该多多的伴儿也会感动啊。

iOS8
指纹解锁的API,那篇小说表明的不得了清楚。

图片 1

正文主要针对在其实使用中蒙受的题材及缓解形式,假定已经通晓指纹解锁API,如不掌握API,请先活动指纹解锁的API表明

郭明錤揭露图片

品类事先向来拔取的是手势密码,近期要增添 iOS8
新出的指纹解锁功用。需要是在装置中增进指纹解锁开关

郭明錤在爆料中称:“苹果可能不会在九月本场公布会上发布那款新的物美价廉Mac台式机,可是它曾经真正做好了。”意思也实属,低价版的
MacBook
台式机苹果已经办好了,不过会不会在后天的公布会上公告那一个还不晓得。同时,依照她的爆料,那款
MacBook 将协助 Touch ID 指纹认证,但是尚未 TouchBar
触控条,毕竟“低价”嘛,倒是可以精通。

问题1:

在民用设置里面,添加指纹解锁开关项,此项仅在辅助TouchID 的装备中冒出
很好,百度了下,得到了之类解决方案

<font color=green>焚林而猎方案:</font>

LAContext *context = [LAContext new];
NSError *error = [NSError new];
BOOL isAvailable = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];

那是api给出的判定TouchID是还是不是可用的法子,isAvailable == Yes 表达 TouchID
可用,反之,则不可用。
只是,当我满心欢娱的采纳的时候,难点来了

图片 2

问题2:

在6 Plus,未设置手机解锁密码或没有可用的螺纹时,用地点的不二法门判断
isAvailable == No,刹那间心都碎了。
那边如故有化解方案

<font color=green>涸泽而渔方案:</font>

if (!isAvailable) {
    NSString *str = nil;
    switch (error.code) {
        case LAErrorTouchIDNotEnrolled://无可用指纹

        case LAErrorPasscodeNotSet://设备未开启密码
        {
            isAvailable = YES;
            break;
        }
        case LAErrorTouchIDNotAvailable:
        default:
        {
            isAvailable = NO;
            break;
        }

    }
}

即使如此依然把那些难点解决了。but,又暴发了新的题材。

MacBook
是苹果公司在二〇一五年推出的全新台式机连串,它去掉了后缀直接就叫MacBook,在成品稳定上是一款介于
MacBook Air 和 MacBook Pro
之间的产品,国行售卖价格大概在1万到1万三里面。

问题3:

应用上述办法,在 iPod Touch 等不支持 TouchID
的设备,未安装手机解锁密码景况下运作时,设置中的指纹解锁开关项居然出现了。

单步调试之,在 error.code 的 switch 中,进入的是 case
LAErrorPasscodeNotSet://设备未张开密码,执行了isAvailable =
YES;。然,大胆揣度之,api
居然先判断的是有没有打开密码而不是设备档次和或体系是还是不是支持,那使自身根本无语~~~~

那会儿,我再也不信任API了,果断自己写判断吧。

<font color=green>解决方案:</font>

// 硬件设备不支持,或系统版本不支持 指纹解锁
if (![Utils isSystemModelSupportTouchID] || ![Utils isSystemVersionMoreThanVersion:7.0]) {
    return NO;
}

LAContext *context = [LAContext new];
NSError *error = [NSError new];
BOOL isDeviceSupportTouchId = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];

if (!isDeviceSupportTouchId) {

    //不支持指纹识别

    switch (error.code) {

        case LAErrorTouchIDNotEnrolled:

        case LAErrorPasscodeNotSet:
        {
            isDeviceSupportTouchId = YES;
            break;
        }
        case LAErrorTouchIDNotAvailable:
        default:
        {
            isDeviceSupportTouchId = NO;
            break;
        }
    }
}


return isDeviceSupportTouchId;

硬件设备判断上花了一小点功夫,版本判断明确很粗略。

硬件装备判断思路:

1.赢得装备档次字符串,如索尼爱立信 5c,HUAWEI 6;
2.论断设备项目字符串是包括诺基亚 ,iPod , 三星平板,是HUAWEI则截取设备档次字符串中的首位数字,GALAXY Tab 有分mini 和Air,
截取设备档次字符串中的第三位数字,然后数字比较判断是或不是帮助TouchID。

由来,TouchID 告一段落!在此,附上本文中的 Demo
地址:LRFFingerPrintManager,欢迎各位读者朋友指出提出。。




时间:2015年12月23日

多年来 iOS9.2 系统标准公布,有反馈说App中选用指纹解锁在 iOS9.2
上会导致App崩溃。故,开端了搜寻 bug 之旅。

而基于此前产业链分析师 吉米 Hsiao
的解析,那款入门级 MacBook 将会搭载与 MacBook Pro
相同尺寸的13.3寸Retina显示器,而出售价格方面将与 MacBook Air
一致,可能会略高于 999 加元(约合人民币 6315 元)。

问题4:

升级手机9.2 版本后,使用指纹解锁,果然是崩溃了。手指放到 home
键上后,App 卡死,不可以点击页面上的控件,大致3,4秒后闪退至桌面。

鉴于测试机都不曾升级,故先看了有关的代码,注意到在表达指纹成功后,
使用dispatch_sync(dispatch_get_main_queue(), ^{
})来调用主线程处理局地办事。遂,猜测应该是那里出了难点,一般应选择dispatch_async,而非dispatch_sync。但不敢肯定,因为不能解释那样写就会崩溃,而且事先一贯都是足以健康使用的。

<font color=brown>原因:</font>
iOS9.2
做了优化,使体验更通畅。可能在dispatch_async和dispatch_sync下了刀。

<font color=green>化解方案:</font>

待用9.2系统的真机运行时,半信半疑的把其改用了dispatch_async,并不曾崩溃。但使用dispatch_sync确实崩溃了。

图片 3

MacBook
与 MacBook Air | 图片来源CNET

借使说新款入门级 MacBook
真的是这种陈设而且那种价格的话,毫无疑问一定会变成热卖爆款了呢,如此一来苹果又有啥不可提振台式机销量给股东交一个狼狈的战绩单了。

一而再结果到底是哪些的吧?大家就静待后天苹果公布会公布了!

本文完归来乐乎,查看越多

义务编辑:

admin

网站地图xml地图