云端笔记
云端笔记
  • 发布:2017-04-27 23:04
  • 更新:2017-12-05 09:21
  • 阅读:3305

正在开发IOS的TouchID指纹识别扩展,但是遇到一个问题,不知道是我的代码写的有问题,还是Native.js的BUG

分类:Native.js

正在开发IOS的TouchID指纹识别扩展,但是遇到一个问题,不知道是我的代码写的有问题,还是Native.js的BUG
根据OC的代码开发了一下TouchID指纹识别的扩展,先贴代码。
OC原生代码

复制代码LAContext *lacontext = [[LAContext alloc] init];  
NSError *error;  
if ([lacontext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])  
{  
    [lacontext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics  
               localizedReason:NSLocalizedString(@"Home键验证已有手机指纹", nil)  
                                 reply:^(BOOL success, NSError *error){  
                                     if (success)  
                                     {  
                                          NSLog(@"验证通过");  
                                     } else {  
                                         NSLog(@"失败");  
                                     }  
                                 }];  
}

JS代码:

复制代码var LAContext = plus.ios.importClass('LAContext');  
var lacontext  = plus.ios.newObject("LAContext");  
var isSupport = lacontext.canEvaluatePolicyerror(1, null); //返回是否支持指纹识别  
console.log(isSupport);  
if(isSupport){  
    lacontext.evaluatePolicylocalizedReasonreply(1, '请校验指纹', function(success, error){  
        console.log(success);  
        console.log(error);  
    });  
}

这段代码,可以正常调出指纹识别的窗口,但是手指放上去后,无论指纹正确与否,success输出都为空。

返回结果:

复制代码[LOG] : true  
[LOG] :   
[LOG] : 

第一个输出isSupport的位置判断是否支持指纹识别,可以正常返回true,第二个输出success和第三个输出error,无论指纹正确与否,全部输出空值。

提问,
1、OC闭包的写法对应到5+JS里面是不是这样的写法?
2、如果我的闭包写法正确的话,那么success没有正确返回布尔值,error也没有正常返回出NSError的对象,这个应该如何处理?其实error也没那么重要,只要success能正常返回就OK的。

2017-04-27 23:04 负责人:无 分享
已邀请:
云端笔记

云端笔记 (作者)

往前顶一下,看看有没有能解决的朋友,帮我看看!谢谢!

云端笔记

云端笔记 (作者)

唉,发了两天没有人帮忙回答,不过估计指纹识别是不能通过Native.js实现了,因为我发现原生方法中含有闭包的时候,JS的回调函数并不能正确的识别函数的参数。
于是自己用原生OC开发了一个5+插件,实现了指纹识别的功能。感觉用插件的方法也很方便,而且更加灵活。
但是唯一的缺点是,必须使用Xcode本地打包,才能使用。

云端笔记

云端笔记 (作者)

分享方法:http://ask.dcloud.net.cn/article/1348

江户川林柯南

江户川林柯南 - 永远的是一个学生

老哥,你的研究很深入啊,只可惜这个论坛小白太多了

该问题目前已经被锁定, 无法添加新回复

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容